Als «most-vexing-parse» getaggte Fragen

80
Warum ruft dies den Standardkonstruktor auf?

struct X { X() { std::cout << "X()\n"; } X(int) { std::cout << "X(int)\n"; } }; const int answer = 42; int main() { X(answer); } Ich hätte erwartet, dass dies auch gedruckt wird X(int), weil X(answer);als Besetzung von intbis Xoder interpretiert werden könnte überhaupt...