What this C++ language-knowledge question tests
This is an easy question about C++ type conversion and implicit constructor behavior. It probes whether you understand when and how the compiler invokes single-argument constructors automatically, and what happens when those conversions interact with function overloading or template instantiation.
To reason through problems like this, you need to recognize the distinction between explicit and implicit conversion constructors, trace the compiler's overload resolution, and predict the resulting output. The question rewards careful reading of the code path and awareness of C++'s implicit conversion rules.
- Single-argument constructor implicit conversion
- The
explicit keyword and its scope - Overload resolution and type matching
- Temporary object construction