コンパイラ エラー C2080
'identifier': 'type' の型は、単一の初期化式からのみ推測できます
解説
コンパイラは、宣言で直接リスト初期化を使用し、初期化子リストに 1 つの要素がある場合にのみ、型auto
decltype(auto)
を推測できます。
例
次の例は、C2080 の原因となるいくつかの宣言を示しています。
auto x1(1, 2); // C2080
auto x2({4}); // C2080
decltype(auto) x3(1, 2); // C2080
decltype(auto) x4({4}); // C2080
この問題を解決するには、1 つの値初期化子を使用します。
auto x1 = 1; // Valid
auto x2(1); // Valid
decltype(auto) x3 = 1; // Valid
decltype(auto) x4(1); // Valid