关于初始化类类型成员的问题
C++primer中246面有一段:
class Window_mgr
{
private:
std::vector<Screen>screens{Screen(24,90,' ')};
};
虽然这个类什么都不做,但是运行的时候会发出这个错误信息:
错误 1 error C2664: “std::vector<Screen,std::allocator<_Ty>>::vector(std::initializer_list<Screen>,const std::allocator<_Ty> &)”: 无法将参数 1 从“Screen”转换为“const std::allocator<_Ty> &”
但是当在vector对象中在添加一个Screen构造函数时又可以正常运行
class Window_mgr
{
private:
std::vector<Screen>screens{Screen(24,90,' '),Screen(24,90,' ')};
};
当vector对象构造函数添加到第4个时会出现没有重载函数接受4个参数的错误。
并且只要这个vector对象只要不在内类初始化,就不会出现以上错误,想请问下大神这条类内初始化的语句问题出在哪里了....
用的编译器是vs2013。