以下代碼無法在VS2015中編譯。VS2015拒絕未命名類型的類內初始化
struct Foo
{
Foo(int value) { }
};
struct Moo
{
struct
{
Foo foo = 0;
} fooHolder;
};
int main()
{
Moo moo;
}
顯示以下錯誤。
1>c:\xxx\main.cpp(81): error C2512: 'Foo' : no appropriate default constructor available
1> This diagnostic occurred in the compiler generated function 'Moo::<unnamed-type-fooHolder>::(void) restrict(cpu, amp)'
如果未命名的結構被賦予一個名字,代碼將被編譯。
struct NamedHolder
{
Foo foo = 0;
} fooHolder;
在clang和gcc編譯的代碼。 http://coliru.stacked-crooked.com/a/3b4ab035a967eed9
它拒絕有效的代碼嗎?
@ 101010我不知道。我的意思是符合標準。 – typ1232
我有Visual C++ 2015 00322-20000-00000-AA794,工作正常。 – 101010
@ 101010您是否安裝了Update 1 RC?我的版本是00322-90053-68603-AA603。 – typ1232