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
to的转换X
, 或- 什么都没有,因为
X(answer);
可以解释为变量的声明。
但是,它会打印X()
,我不知道为什么X(answer);
要调用默认构造函数。
奖励积分:我必须更改什么才能获得临时声明而不是变量声明?