Pytania oznaczone «most-vexing-parse»

80
Dlaczego to wywołuje domyślny konstruktor?

struct X { X() { std::cout << "X()\n"; } X(int) { std::cout << "X(int)\n"; } }; const int answer = 42; int main() { X(answer); } Spodziewałbym się, że to też się wydrukuje X(int), ponieważ X(answer);można to zinterpretować jako odlew zint do Xlub w ogóle nic, ponieważ...