Compiler Error C2080
'identifier': the type for 'type' can only be deduced from a single initializer expression
Remarks
The compiler can only deduce the type for auto
or decltype(auto)
if the declaration uses direct list-initialization and the initializer-list has a single element.
Example
The following sample shows some declarations that cause C2080:
auto x1(1, 2); // C2080
auto x2({4}); // C2080
decltype(auto) x3(1, 2); // C2080
decltype(auto) x4({4}); // C2080
To resolve the issue, use a single value initializer:
auto x1 = 1; // Valid
auto x2(1); // Valid
decltype(auto) x3 = 1; // Valid
decltype(auto) x4(1); // Valid