Почему один протип работает в "цпной" форме, а другой - нет?

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Аватара пользователя
Сионист
Сообщения: 1211
Зарегистрирован: 31 мар 2014, 06:18

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";// работает
Аватара пользователя
Сионист
Сообщения: 1211
Зарегистрирован: 31 мар 2014, 06:18

Din666 писал(а):теперь откуда-то взялся utf-8, который к wstring имеет такое отношение, как Сионист к программированию
Не ври, к wstring он ни какого отношения не имеет. Но он имеет отношение к требуемому формату файла, который к внутреннему представлению ни какого отношения сам иметь не обязан.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Ответить