| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > ANSI и Unicode |
| Автор: Любитель 23.9.2006, 10:49 |
| Хотелось бы узнать ваше мнение, как лучше реализовать выбор между Анси и Юникодом в библиотеке, не предназначенной конкретно для работы со строками. Имеем как минимум три классических решения:
Лично мне больше всего нравиться развитие полседнего варианта. Развитие заключается в использовании класса строк, коснтруирующегося из std::string и std::wstring, а также поддерживающего преобразование к std::string (с учётом локали, по дефолту - текущей) и std::wstring. Вероятно, наследник std::wstring. Для большей радости можно добавить шаблонные конструкторы из basic_string - для других char_trits или аллокаторов. |
| Автор: Daevaorn 23.9.2006, 11:10 | ||
| Любитель, 2-ой вариант
Плюс несколько функций преобразования. И конечно два варианта библиотеки придется распространять, но это не особо страшно. |
| Автор: Любитель 23.9.2006, 16:12 |
| Выбор не только между std::string и std::wstring. Через них всё не сделаешь (мне нужна не только обработка строк). В итоге подобных директив препроцессора будет не мало. Чем это плохо, я уже сказал. К тому же функции и пр. получаются не в неймспейсах, а глобально (причём на уровне препроцессора, что не гуд). Именно поэтому этот путь мне не нравиться. ЗЫ Жду ещё мнений |
| Автор: Daevaorn 23.9.2006, 20:10 | ||
Мне этого хватает. Ещё обертка для строковых литерал типа _TEXT() и больше ничего не надо. В двух-трёх места. У меня по крайней мере. Не понял. Функции и проxее вообще от этого не зависят. Они все дружно используют String |
| Автор: Любитель 23.9.2006, 20:39 | ||
Я не про то. 'Функции' которые объявляются как макросы. Вспомним, скажем WinAPI:
Добавлено @ 20:40 Кстати, Damarus, твой пост означает типа 'согласен с этим вариантом'? |
| Автор: Daevaorn 23.9.2006, 20:43 | ||
Ну а ты так не делай. Вобщем, проблема высосана из пальца. В одном месте (например в файле наподобии config.hpp) разрулить все дефайны, а потом спокойно юзать. |
| Автор: Damarus 24.9.2006, 06:06 | ||
Именно |