我的编译器是最新的VC++ 2013 RC.
int f(bool b)
{
return {}; // OK
return b ? 1 : { }; // C2059: syntax error : '{'
return b ? 1 : {0}; // C2059: syntax error : '{'
return b ? {1} : {0}; // C2059: syntax error : '{'
}
Run Code Online (Sandbox Code Playgroud)
为什么braced-init-list不能用于三元运算符?
这种行为是否被C++标准定义为不正确,或仅仅是VC++编译器的错误?