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 zintdoXlub- w ogóle nic, ponieważ
X(answer);mogłoby być zinterpretowane jako deklaracja zmiennej.
Jednak drukujeX() i nie mam pojęcia, dlaczego X(answer);miałbym wywołać domyślny konstruktor.
PUNKTY DODATKOWE: Co musiałbym zmienić, aby uzyskać tymczasową zamiast zmiennej deklarację?