Compartir a través de


Error del compilador C2080

'identificador': el tipo para 'tipo' solo se puede deducir a partir de una sola expresión de inicializador

Comentarios

El compilador solo puede deducir el tipo de o auto decltype(auto) si la declaración usa la inicialización de lista directa y la lista de inicializadores tiene un único elemento.

Ejemplo

En el ejemplo siguiente se muestran algunas declaraciones que provocan la advertencia C2080:

auto x1(1, 2);           // C2080
auto x2({4});            // C2080
decltype(auto) x3(1, 2); // C2080
decltype(auto) x4({4});  // C2080

Para resolver el problema, use un inicializador de valor único:

auto x1 = 1;             // Valid
auto x2(1);              // Valid
decltype(auto) x3 = 1;   // Valid
decltype(auto) x4(1);    // Valid