Я новичок в C++ 11 и мне было интересно, как этот код работает внутри:станд :: 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
Возможно, обратитесь к пункту 6 «Эффективный современный C++» – Mine