ециализации этого шаблона в ви

Автор admin Суббота, 16 мая 2009 11:32

ециализации этого шаблона в виде следующих определений типов: typedef basic_istream istream; typedef basic_istream wistream: typedef basic_ifstream ifstream: typedef basic_ifstream wifstream: 176 Глава 4 • Потоки ввода-вывода typedef basic_istringstream istringstream; typedef basic_istringstream wistringstream; Остальные типы потоков определяются аналогичным образом. В идеале этого было бы достаточно для создания потоков с различными типами символов, но на практике все не так просто. Дело в том, что функции обработки символов для типов char и wchar_t имеют разные имена. Например, для сравнения двух строк с обычной кодировкой используется функция strcmp(), а для строк с расширенной кодировкой — функция wcscmp(). Не забывайте, что поддержка расширенных кодировок появилась в языке С, в котором перегрузка функций отсутствует, поэтому пришлось использовать уникальные имена. Из-за этого обобщенный поток не мог просто вызвать strcmp() при вызове оператора сравнения. Понадобился некий механизм автоматического выбора правильной низкоуровневой функции. Данная проблем


Комментарии закрыты.