コンパイラ エラー C3538
宣言リストでは 'auto' は常に同じ型に推測される必要があります
宣言子リストで宣言されるすべての変数が、同じ型に解決されません。
このエラーを解決するには
- リスト内のすべての auto 宣言が、同じ型を推測することを確認します。
使用例
次のステートメントでは、C3538 が発生します。各ステートメントが複数の変数を宣言しており、auto キーワードの各使用方法が同じ型を推測していません。
// C3538.cpp
// Compile with /Zc:auto
// C3538 expected
int main()
{
// Variable x1 is a pointer to char, but y1 is a double.
auto * x1 = "a", y1 = 3.14;
// Variable c is a char, but c1, c2, and c3 are pointers to pointers.
auto c = 'a', *c1 = &c, * c2 = &c1, * c3 = &c2;
// Variable x2 is an int, but y2 is a double and z is a char.
auto x2(1), y2(0.0), z = 'a';
// Variable a is a pointer to int, but b is a pointer to double.
auto *a = new auto(1), *b = new auto(2.0);
return 0;
}