带有指定初始化程序的MSVC12(VS2013)中可能存在的编译器错误

使用VS2013 Update 2,我偶然发现了一些奇怪的错误消息:

// test.c int main(void) { struct foo { int i; float f; }; struct bar { unsigned u; struct foo foo; double d; }; struct foo some_foo = { .i = 1, .f = 2.0 }; struct bar some_bar = { .u = 3, // error C2440 : 'initializing' : cannot convert from 'foo' to 'int' .foo = some_foo, .d = 4.0 }; // Works fine some_bar.foo = some_foo; return 0; } 

GCC和Clang都接受了。

我错过了什么或这段代码是否暴露了编译器错误?

编辑:重复: 使用指定的初始化程序在另一个结构中初始化struct会导致Visual Studio 2013中的编译错误

这是一个已知的错误 。 据说它将在下一版MSVC中修复。

编辑:不幸的是,该错误仍然存​​在于VS14 CTP 4中。

编辑:此错误已在VS2015 CTP 5中修复。