struct X
{
X() { std::cout << "X()\n"; }
X(int) { std::cout << "X(int)\n"; }
};
const int answer = 42;
int main()
{
X(answer);
}
Je me serais attendu à ce à imprimer
-
X(int)
carX(answer);
pourrait être interprété comme une fonte à partir deint
deX
, ou - rien du tout, parce qu'
X(answer);
pourrait être interprété comme la déclaration d'une variable.
Cependant, il imprime X()
, et je n'ai aucune idée pourquoi, X(answer);
pourrait appeler le constructeur par défaut.
POINTS BONUS: Qu'aurais-je à changer pour obtenir un temporaire au lieu d'une déclaration de variable?