El literal de la cadena coincide con la sobrecarga de Bool en lugar de std :: string
Estoy intentando escribir una clase de C ++ que tiene algunos métodos sobrecargados:
class Output
{
public:
static void Print(bool value)
{
std::cout << value ? "True" : "False";
}
static void Print(std::string value)
{
std::cout << value;
}
};
Ahora digamos que llamo al método como sigue:
Output::Print("Hello World");
este es el resultado
Cierto
Entonces, ¿por qué, cuando he definido que el método puede aceptar booleano y cadena, utiliza la sobrecarga booleana cuando paso un valor no booleano?
EDITAR: vengo de un entorno C # / Java, por lo que es bastante nuevo para C ++!