Поэтому я узнал о списке инициализаторов конструктора и написал следующий код:
class Mango
{
public:
Mango(){cout<<"Mango::ctor()";}
Mango(const Mango& other){cout<<"Mango::copy_ctor()";}
};
class Box
{
public:
Box() : mango(Mango()) //**doesn't call copy constructor**
{
}
Mango mango;
};
int main()
{
Box box;
return 0;
}
Для этого я использовал компилятор g++. Его вызов конструктор не копирует конструктор. Он должен вызвать конструктор копирования правильно, потому что я создаю объект для создания другого объекта? Какая проблема здесь и что говорит об этом стандарт?