を使用するとはどういう意味new auto
ですか? 次の式を検討してください。
new auto(5)
動的に割り当てられたオブジェクトの型は何ですか? 返されるポインタの型は何ですか?
を使用するとはどういう意味new auto
ですか? 次の式を検討してください。
new auto(5)
動的に割り当てられたオブジェクトの型は何ですか? 返されるポインタの型は何ですか?
このコンテキストでは、 にauto(5)
解決されint(5)
ます。
int
に初期化されたヒープから新しいを割り当てています5
。
(だから、それは を返していますint *
)
許可を得て、Andy Prowl の機知に富んだ回答を引用します。
C++11 標準のパラグラフ 5.3.4/2 によると:
type-specifier がnew-type-idまたはnew-expressionのtype-idのtype-specifier-seqに
auto
現れる場合、new - expressionには次の形式のnew-initializerが含まれます。( assignment-expression )
割り当てられた型は、次の
e
ようにnew - initializer から推定されます。考案された宣言 (7.1.6.4)の変数について次のように推定されます。x
T x(e);
【例:
new auto(1); // allocated type is int auto x = new auto(’a’); // allocated type is char, x is of type char*
—<em>例の終了]
C++11 標準のパラグラフ 5.3.4/2 によると:
type-specifier がnew-type-idまたはnew-expressionのtype-idのtype-specifier-seqに
auto
現れる場合、new - expressionには次の形式のnew-initializerが含まれます。( assignment-expression )
割り当てられた型は、次の
e
ようにnew - initializer から推定されます。考案された宣言 (7.1.6.4)の変数について次のように推定されます。x
T x(e);
【例:
new auto(1); // allocated type is int auto x = new auto(’a’); // allocated type is char, x is of type char*
—<em>例の終了]
したがって、割り当てられたオブジェクトの型は、発明された宣言の推定型と同じです。
auto x(5)
ですint
。