struct X
{
X() { std::cout << "X()\n"; }
X(int) { std::cout << "X(int)\n"; }
};
const int answer = 42;
int main()
{
X(answer);
}
Я б також очікував, що це надрукується
X(int), оскількиX(answer);може бути інтерпретована як кидок зintдоX, або- нічого взагалі, тому що це
X(answer);можна трактувати як оголошення змінної.
Однак він друкуєтьсяX() , і я не уявляю, навіщо X(answer);називати конструктор за замовчуванням.
БОНУСНІ ТОЧКИ: Що б мені змінити, щоб отримати тимчасову замість декларації змінної?