auto
C++11 でキーワードをストレージ クラス指定子として使用できますか?
次のコードは C++11 で有効ですか?
int main() {
auto int x;
}
auto
C++11 でキーワードをストレージ クラス指定子として使用できますか?
次のコードは C++11 で有効ですか?
int main() {
auto int x;
}
いいえ、C++11 ではコードの形式が正しくありません。auto
in C++11 は、初期化子から変数の型を推測するために使用され、ストレージ クラス指定子としては使用できません。
正しい使い方
int main()
{
auto x = 12; // x is an int
auto y = 12.3; // y is a double
}
auto int x;
は循環型です - 文字通り型を として宣言していint
ます。この情報があれば、単純に使用しない理由はありません:
int x;
x をスコープ内の別の変数の型として宣言したい場合は、使用できますdecltype
using sometype = float;
sometype y;
decltype(y) x;