だが、私はこの構造体を持っているとしましょう:カスタムブレース初期化子
struct MyStruct {
int field1;
char *field2;
MyStruct(int a, char* b): field2(b) {
field1 = doStuff(a);
}
MyStruct(int a): MyStruct(a, nullptr) {}
~MyStruct();
}
を私の知る限り、私はいくつかのコンストラクタを持っているように、これは集計ではありません知っています。暗黙的にこの中に(最初の1適切なコンストラクタを呼び出し
MyStruct x = { 1, "string" };
:私が達成したい何
は、このようなコードを使用して意味し、カスタムの方法で中括弧初期化子を使用することです場合)。
は、どのような方法で、このことは可能ですか?
[initializer_list](http://en.cppreference.com/w/cpp/utility/initializer_list)
std::string
なると使用するには? BTW ...この特別なケースでは、[default argument](http://en.cppreference.com/w/cpp/language/default_arguments)を使用してコードを減らすことができます。 – user1810087'char *'の代わりに 'const char *'だけを使うと、そのままコンパイルされます。質問はなんですか? – SergeyA