相关疑难解决方法(0)

为什么braced-init-list不能用于三元运算符?

我的编译器是最新的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++编译器的错误?

c++ initialization ternary-operator visual-c++ c++11

26
推荐指数
2
解决办法
1440
查看次数