е basic_ostream: tempiate
Автор admin
Суббота, 16 мая 2009 11:32
е basic_ostream: tempiate std::basic_ostream& operator«(std::basic_ostream& os. const Date& d) { charT fillc = os.fill(os.widen(‘0′)); charT dash = os.widen(‘-’); os « setw(2) « d.month « dash « setw(2) « d.day « dash « setw(4) « d.year; os.fill(fillc): return os; } Также придется заменить char параметром шаблона charT в объявлении fillc, поскольку это может быть как char, так и wchar_t в зависимости от специализации шаблона. При написании шаблона тип потока неизвестен, поэтому необходим механизм автоматического преобразования символьных литералов к правильному размеру для данного потока. Задача решается благодаря функции widen() потокового класса. Например, выражение widen(‘-’) преобразует свой аргумент в L’-’ для расширенных потоков и оставляет его без изменений для узких потоков. Также су- Интернационализация 177 int mainO { ществует функция narrow(), которая при необходимости преобразует символ в char. Функция widen() позволяет написать обобщенную версию представленного ранее манипулятора nl: tempiate basic_ostream
Теги: net
Комментарии закрыты.
Автор admin Суббота, 16 мая 2009 11:32
е basic_ostream: tempiate
Комментарии закрыты.
Последние комментарии