struct X { X() { std::cout << \"X()\\n\"; } X(int) { std::cout << \"X(int)\\n\"; } }; const int answer = 42; int main() { X(answer);
The parentheses are optional. What you said is identical to X answer;, and it's a declaration statement.
X answer;