Ich habe den folgenden Code:Implizite Besetzung von const String bool
#include <iostream>
#include <string>
void foo(bool a)
{
std::cout << "bool" << std::endl;
}
void foo(long long int a)
{
std::cout << "long long int" << std::endl;
}
void foo(const std::string& a)
{
std::cout << "string" << std::endl;
}
int main(int argc, char* args[])
{
foo("1");
return 0;
}
Bei der Ausführung ich diese Ausgabe erhalten:
bool
Ich würde als Ausgang zu erwarten:
string
Warum impliziert g ++ 4.9 diese Zeichenfolge implizit auf bool?