What is a converting constructor in C++ ? What is it for?
The definition for a converting constructor is different between C++03 and C++11. In both cases it must be a non-explicit constructor (otherwise it wouldn’t be involved in implicit conversions), but for C++03 it must also be callable with a single argument. That is: struct foo { foo(int x); // 1 foo(char* s, int x = …