Нет.Din666 писал(а):Вопрос был про неработающую самодельную перегрузку:
поэтому довольно ясно намекнули, что перегрузка не работает из-за несоответствия типов
"abc" тип char*
L"abc" тип wchar_t*
Код: Выделить всё
std: :o fstream &operator << (std: :o fstream &Stream , const std::wstring &String);
std: :o fstream &operator << (std: :o fstream &Stream , const wchar_t *String);
...
std: :o fstream &operator << (std: :o fstream &Stream , const std::wstring &String)
{
...
return Stream;
}
std: :o fstream &operator << (std: :o fstream &Stream , const wchar_t *String)
{
...
return Stream;
}
...
std::wstring s;
std: :o fstream L;
L<<s; // работает
L<<L"sdfagfs"<<s<<L"dfsfggfsd";// Не работает, запускается стандартная версия вместо перегруженной.
Код: Выделить всё
std: :o stream &operator << (std: :o stream &Stream , const std::wstring &String);
std: :o stream &operator << (std: :o stream &Stream , const wchar_t *String);
...
std: :o stream &operator << (std: :o stream &Stream , const std::wstring &String)
{
...
return Stream;
}
std: :o stream &operator << (std: :o stream &Stream , const wchar_t *String)
{
...
return Stream;
}
...
std::wstring s;
std: :o fstream L;
L<<s; // работает
L<<"sdfagfs"<<s<<"dfsfggfsd";// работает
L<<L"sdfagfs"<<s<<L"dfsfggfsd";// работает