1) my_class(const std::wstring &str1, const std::wstring &str2, bool a = true)...
и
2) my_class(const std::wstring &str, bool a = true)...
Создаю:
my_class m(L"aaa", L"bbb");
Компилятор (gcc 4.4.4, Feodora) в этом случае выбирает вариант 2.
Выходит, что для него логичнее преобразовать const wchar_t * к bool, чем к const std::wstring?