Представьте, что std::ostream& operator<<
хочет сделать что-то с цифрами. Для этой цели кто-то может захотеть использовать std::hex
, другие могут захотеть использовать ничего, независимо от того, какой манипулятор возможен.C++ копировать манипулятор потока в другой поток
Как я могу скопировать их в другой std::ostream
без текстового содержимого ostream
, переданного в качестве аргумента? Мне нужны манипуляторы только.
Так что я хочу, чтобы std::cout << std::hex << someCoolClass(10)
, где someCoolClass
может выглядеть
struct someCoolClass
{
someCoolClass(int i) : _i(i)
{}
friend std::ostream& operator<<(std::ostream& os, const someCoolClass& rhs)
{
std::stringstream ss;
//magically copy manipulators of os
ss << _i;
return os << ss.str();
}
private:
int _i;
};
отпечатков a
. Я знаю, что этот пример бесполезен, и особенно другой поток, чтобы преобразовать целое число в строку, кажется бесполезным, но представьте себе, что это не бесполезно, а не чисто бессмысленно.
Спасибо.