Re[4]: Наследование std::ostream и форматирование вывода
От: Madkinder  
Дата: 26.03.09 11:32
Оценка:
Здравствуйте, Sergey, Вы писали:

S>Ну тогда только с наследованием, imho. Правда, как мне кажется, проблем при этом не меньше — все равно кто-нибудь может написать

string val = "_value_";
s << "prefix" << val << "suffix";

S>Вы абсолютно уверены, что у вас в программе не возникнет ситуация, когда в какой-то стрим не понадобится вывести строку без кавычек?
Это я уже понял ещё при написании прошлого ответа на Ваш пост. Сейчас уже интересна сама возможность реализовать подобное. Даже с наследованием ума не приложу, как можно добиться результата. Ведь наследоваться-то нужно от ostream, а получить функционал в классах stringstream и fstream.

Остановлюсь, пожалуй, на варианте с классом quoted.

S>Наследование от строки — зря, лучше сделать ее членом, копия которая называется s — тоже на мой взгляд лишняя, быстрее будет посимвольно выводить. Больше никаких проблем на первый взгляд не вижу.

Чем чревато наследование от строки? Это запрещено стандартом или где-то могут вылезти другие подводные грабли?

S>Если устроит вместо std::endl писать my::endl или скажем newline, то реализация будет тривиальной.


Возможно я чего-то недопонимаю, ведь my::endl будет добавляться после самой строки, в то время, как табы нужно вставлять до неё. Можно ли пример реализации или более подробное описание подхода?


Спасибо за потраченное время.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.