Как мне написать определяемые пользователем манипуляторы потоков на 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 не использует их автоматически - вам необходимо явно привязать к последней версии библиотеки