Здравствуйте, 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 будет добавляться
после самой строки, в то время, как табы нужно вставлять
до неё. Можно ли пример реализации или более подробное описание подхода?
Спасибо за потраченное время.