¿Por qué hay una conversión de tipo implícito de punteros a bool en C ++?
Considera la clasefoo
con dos constructores definidos así:
class foo
{
public:
foo(const std::string& filename) {std::cout << "ctor 1" << std::endl;}
foo(const bool some_flag = false) {std::cout << "ctor 2" << std::endl;}
};
¿Instanciar la clase con un literal de cadena y adivinar a qué constructor se llama?
foo a ("/path/to/file");
Salida:
ctor 2
No sé sobre ti, pero no creo que sea el comportamiento más intuitivo en el historial de programación. Sin embargo, apuesto a que hay una razón inteligente para ello, y me gustaría saber qué podría ser.