class MyStream: public std: :o fstream
{
public:
MyStream &operator << (const char *String);
MyStream &operator << (const wchar_t *String);
};
...
MyStream f;
f.open("FileName");
f<<std::endl;// ругается на эту строку
Пишет:
D:\Projects\cpp\Test17\Test\Test.cpp|38|error: no match for 'operator<<' (operand types are 'TUTF8FileStream' and '<unresolved overloaded function type>')|
. Если оба оператора-члена убрать, то эйси. Да вот беда: класс создан ради оператора-члена с прототипом
И чем оно лучше? Тем более мне не нужны все кодировки. Нужны только две: utf8 и внутреннее представление типов wchar_t и wstring. И даже интерфейс выбора кодировки не предусмотрен и место ему в проекте нет.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
В вашей аналогии нужны только круглые колёса одного диаметра и стандартные звёздочки другого, но тоже одного диаметра, а не все варианты колёс, начиная с треугольных.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Сионист писал(а):И чем оно лучше? Тем более мне не нужны все кодировки. Нужны только две: utf8 и внутреннее представление типов wchar_t и wstring. И даже интерфейс выбора кодировки не предусмотрен и место ему в проекте нет.
wchar_t и wstring - крайне косячные фичи C++. На win32 wchar_t это UTF-16, на Маке и Линуксе - UCS-32.
Сионист писал(а):В вашей аналогии нужны только круглые колёся одного диаметра и стандартные звёздочки другого, но тоже одного диаметра, а не все варианты колёс, начиная с треугольных.
Колеса из ICU делались людьми многие из которых закончили университет по специальности "теоретические основы информатики" и отлаживались на боевых задачах более десятилетия.
Эйси. Но мне не нужны все варианты колёс начиная с треугольных. Если каждую мелочь решать такими средствами, то мне не хватит винта даже на полпроцента проекта.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ну хоть бы сюда выложил то, как решил. Может кому пригодится в будущем. Нагуглят эту тему и получат профит.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.