Поделиться через


Ошибка компилятора C2080

"идентификатор": тип для типа может быть выведен только из одного выражения инициализатора

Замечания

Компилятор может выводить тип только для auto или decltype(auto) если объявление использует прямую инициализацию списка, а список инициализатора имеет один элемент.

Пример

В следующем примере показаны некоторые объявления, которые вызывают C2080:

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

Чтобы устранить проблему, используйте инициализатор одного значения:

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