Как написать определяемые пользователем манипуляторы для потоковой передачи самописного класса

Как мне написать определяемые пользователем манипуляторы потоков на C ++, которые управляют форматом потоковой передачи самописного класса?

В частности, как бы Я пишу простые манипуляторы подробный и краткий , чтобы контролировать объем потокового вывода?

Моя среда - GCC, версии 4.5.1 и выше.

Пример:

class A
{
 ...
};

A a;

// definition of manipulators verbose and terse

cout << verbose << a << endl; // outputs a verbosely
cout << terse << a << endl; // outputs a tersely

PS: То, что далее следует, - это просто побочный вопрос, не стесняйтесь его игнорировать: можно ли переносимо распространить это на манипуляторов, принимающих аргументы? Йосаттис пишет в " Похоже, что версия, указанная в нашем манифесте, отличается от устанавливаемой распространяемой среды выполнения.

Я пытался найти исчерпывающий список различных версий среды выполнения для пакетов обновления и исправлений безопасности Visual Studio, но я не могу найти ничего полезного.

На моем компьютере установлено по крайней мере пять разных, но я не могу связать их с тем, что создает Visual Studio. Вот что я обнаружил до сих пор:

Есть ли более полный список, чем этот, или тот, который уточняет, какую версию мы создаем?

Что такое установка Visual Studio 2008 с полным набором исправлений? SP1 + исправление ATL? Есть ли дальнейшие обновления безопасности?

РЕДАКТИРОВАТЬ: com / kb / 2465361

Есть ли более полный список, чем этот, или тот, который уточняет, какую версию мы создаем?

Что такое установка Visual Studio 2008 с полным набором исправлений? SP1 + исправление ATL? Есть ли дальнейшие обновления безопасности?

РЕДАКТИРОВАТЬ: com / kb / 2465361

Есть ли более полный список, чем этот, или тот, который уточняет, какую версию мы создаем?

Что такое установка Visual Studio 2008 с полным набором исправлений? SP1 + исправление ATL? Есть ли дальнейшие обновления безопасности?

РЕДАКТИРОВАТЬ: Я нашел эту страницу, на которой, по крайней мере, все загрузки помещены в одно место: http://support.microsoft.com/default.aspx?scid=kb;en-us;2019667&sd=rss&spid=12913

РЕДАКТИРОВАТЬ2: Похоже, что простое обновление до самых последних библиотек Visual Studio не использует их автоматически - вам необходимо явно привязать к последней версии библиотеки

19
задан the_mandrill 4 May 2011 в 09:34
поделиться