这似乎微不足道,但不起作用
namespace Timer {
struct T
{
int milliseconds = 0;
int cmd_id = 0;
};
T init(const HWND hwnd) {
T t = { 0, 0 } ;
return t;
}
}
呼叫者
auto timer = Timer::init();
带有
的VS2015u3中的错误h:\lfwin32\lfwin32.h(21): error C2440: 'initializing': cannot convert from 'initializer list' to 'LFWin32::Timer::T'
h:\lfwin32\lfwin32.h(21): note: No constructor could take the source type, or constructor overload resolution was ambiguous
我原以为这是C ++ 11以后的标准。我需要设置一个选项吗?
答案 0 :(得分:1)
你是对的,你只是错过了VS2015 不完全支持C ++标准的部分!
如果查看list功能,您会看到VS2015不支持“聚合的NSDMI”,这是您想要的功能。
Visual Studio 2017应该支持此功能,因为它们提高了C ++标准的一致性。