Este código me dá erro do compilador: "esperava uma expressão".
std::array< std::string, 3 > candidates = useOutname ? { "%O.log", "%O_.log", "_%O.log" } : { "%J.log", "%J_.log", "_%J.log" };
Se mudar para uma instrução if else simples, funciona:
std::array< std::string, 3 > candidates;
if (useOutname) {
candidates = { "%O.log", "%O_.log", "_%O.log" };
}
else {
candidates = { "%J.log", "%J_.log", "_%J.log" };
}
Gostaria de saber por que usar o operador ternário causa erro aqui? É por causa da inicialização das chaves?