![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Хотелось бы узнать ваше мнение, как лучше реализовать выбор между Анси и Юникодом в библиотеке, не предназначенной конкретно для работы со строками.
Имеем как минимум три классических решения:
Лично мне больше всего нравиться развитие полседнего варианта. Развитие заключается в использовании класса строк, коснтруирующегося из std::string и std::wstring, а также поддерживающего преобразование к std::string (с учётом локали, по дефолту - текущей) и std::wstring. Вероятно, наследник std::wstring. Для большей радости можно добавить шаблонные конструкторы из basic_string - для других char_trits или аллокаторов. |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
Любитель,
2-ой вариант
Плюс несколько функций преобразования. И конечно два варианта библиотеки придется распространять, но это не особо страшно. |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Выбор не только между std::string и std::wstring. Через них всё не сделаешь (мне нужна не только обработка строк). В итоге подобных директив препроцессора будет не мало. Чем это плохо, я уже сказал. К тому же функции и пр. получаются не в неймспейсах, а глобально (причём на уровне препроцессора, что не гуд). Именно поэтому этот путь мне не нравиться.
ЗЫ Жду ещё мнений |
|||
|
||||
| Damarus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 671 Регистрация: 6.5.2006 Репутация: 6 Всего: 29 |
|
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
Мне этого хватает. Ещё обертка для строковых литерал типа _TEXT() и больше ничего не надо. В двух-трёх места. У меня по крайней мере. Не понял. Функции и проxее вообще от этого не зависят. Они все дружно используют String |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Я не про то. 'Функции' которые объявляются как макросы. Вспомним, скажем WinAPI:
Добавлено @ 20:40 Кстати, Damarus, твой пост означает типа 'согласен с этим вариантом'? |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| Damarus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 671 Регистрация: 6.5.2006 Репутация: 6 Всего: 29 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |