неправильно выбирается функция

Я пытался очистить код, который использует 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 меня обманывает ?

26
задан John Dibling 2 December 2011 в 16:13
поделиться