该代码给出了编译器错误:“期望一个表达式”。
std::array< std::string, 3 > candidates = useOutname ? { "%O.log", "%O_.log", "_%O.log" } : { "%J.log", "%J_.log", "_%J.log" };
如果更改为普通的 if else 语句,则它可以起作用:
std::array< std::string, 3 > candidates;
if (useOutname) {
candidates = { "%O.log", "%O_.log", "_%O.log" };
}
else {
candidates = { "%J.log", "%J_.log", "_%J.log" };
}
我想知道为什么使用三元运算符会导致错误?是因为花括号初始化吗?