Erro do compilador C2080
'identifier': o tipo de 'type' só pode ser deduzido por meio de uma expressão de inicializador único
Comentários
O compilador só pode deduzir o tipo para auto
ou decltype(auto)
se a declaração usar inicialização de lista direta e a lista de inicializadores tiver um único elemento.
Exemplo
O exemplo a seguir mostra algumas declarações que causam C2080:
auto x1(1, 2); // C2080
auto x2({4}); // C2080
decltype(auto) x3(1, 2); // C2080
decltype(auto) x4({4}); // C2080
Para resolver o problema, use um inicializador de valor único:
auto x1 = 1; // Valid
auto x2(1); // Valid
decltype(auto) x3 = 1; // Valid
decltype(auto) x4(1); // Valid