Я пытался очистить код, который использует char*
с std::string
и столкнулся с проблемой, которая иллюстрируется следующим кодом.
void Foo( int xIn , const std::string & fooIn )
{
std::cout << "string argument version called \n";
}
void Foo( int xIn , bool flagIn = true )
{
std::cout << "bool argument version called \n";
}
int main()
{
int x = 1;
Foo( x , "testing" );
return 0;
}
Когда я запускаю программу, я получаю bool версию аргумента called. Является ли преобразование char*
в bool
более предпочтительным, чем char*
в const std::string&
или Visual Studio 2008 меня обманывает ?