struct X
{
X() { std::cout << "X()\n"; }
X(int) { std::cout << "X(int)\n"; }
};
const int answer = 42;
int main()
{
X(answer);
}
私はこれがどちらかを印刷することを期待していました
X(int)
、からへX(answer);
のキャストとして解釈される可能性があるため、またはint
X
X(answer);
変数の宣言として解釈される可能性があるため、何もありません。
ただし、それは出力されX()
、なぜX(answer);
デフォルトのコンストラクターを呼び出すのかわかりません。
ボーナスポイント:変数宣言の代わりに一時的な宣言を取得するには、何を変更する必要がありますか?