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), weilX(answer);als Besetzung vonintbisXoder interpretiert werden könnte- überhaupt nichts, weil
X(answer);als Deklaration einer Variablen interpretiert werden könnte.
Es wird jedoch gedrucktX() , und ich habe keine Ahnung, warum X(answer);der Standardkonstruktor aufgerufen werden soll.
BONUSPUNKTE: Was müsste ich ändern, um eine temporäre anstelle einer variablen Deklaration zu erhalten?