编译器错误 C2080
“identifier”:“type”的类型只能从单个初始化表达式推导出
注解
如果声明使用直接列表初始化,并且初始化表达式列表具有单个元素,则编译器只能推断 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