このコードは内部でどのように動作するか私はC++ 11に新たなんだと私は思っていた:のstd ::コンストラクタでinitializer_list変換
class MyClass
{
public:
MyClass(int a, double b) {
cout << "ctor()" << endl;
}
};
int main()
{
MyClass i1{4, 7};
return 0;
}
新しい初期化子リストの私の理解では、それがクラスstd::initializer_list
であるということですコード内に特別な構文{ .... }
で構築されています。したがって、{4, 7}
によって作成されたこのクラスインスタンスは、内部的にコンストラクタに適合するフォームに変換されてMyClass
になりますか?ありがとう。
構文{ } '* std :: initializer_list'を作ることができます。それ以外のこともできます。 – immibis
@immibisこれは私が読むことができる良いリファレンスはありますか? – hovo
「有効な現代C++」の項目6を参照してください。 – Mine