Есть ли в boost (а может и в STL я не заметил) реализация предиката для сравнения строк без учета регистра ?
Хочу использовать такой, например, в map:
std::map<std::string, std::string, case_insensitive_less<std::string> >
Задолбался каждый раз изобретать велосипед...
Здравствуйте, gbt, Вы писали:
gbt>Есть ли в boost (а может и в STL я не заметил) реализация предиката для сравнения строк без учета регистра ?
gbt>Хочу использовать такой, например, в map:
gbt>std::map<std::string, std::string, case_insensitive_less<std::string> >
gbt>Задолбался каждый раз изобретать велосипед...
Заимплементить один раз char_traits в котором в методе
static int compare(
const char_type* _Str1,
const char_type* _Str2,
size_t _Num
);
реализоваьт нужную вам функциональность, тогда basic_string< CHART, My_char_traits >
... << RSDN@Home 1.1.4 stable rev. 510>>
Здравствуйте, srggal, Вы писали:
gbt>>Есть ли в boost (а может и в STL я не заметил) реализация предиката для сравнения строк без учета регистра ?
gbt>>Хочу использовать такой, например, в map:
gbt>>std::map<std::string, std::string, case_insensitive_less<std::string> >
gbt>>Задолбался каждый раз изобретать велосипед...
S>Заимплементить один раз char_traits в котором в методе
S>реализоваьт нужную вам функциональность, тогда basic_string< CHART, My_char_traits >
Спасибо, но я реализую довольно много несвязных проектов и уже который раз встречаю необходимость в таком деле.
Один раз реализовать не удастся, так как проекты не связаны, то есть не линкуются ни к каким общим библиотекам и не используют общие хедеры...
Приходится каждый раз писать такой функтор, можно конечно и вашим способом, но везде используются строки string — их придется менять или писать функцию преобразования...
В любом случае, мне нужно что-то стандартное... даже в boost::string_algo вроде не увидел подходящего...
Здравствуйте, gbt, Вы писали:
gbt>Есть ли в boost (а может и в STL я не заметил) реализация предиката для сравнения строк без учета регистра ?
gbt>Хочу использовать такой, например, в map:
gbt>std::map<std::string, std::string, case_insensitive_less<std::string> >
gbt>Задолбался каждый раз изобретать велосипед...
В boost знаю только case insensitive equal
http://www.boost.org/doc/html/is_iequal.html
вот ещё здесь можешь прочитать
http://www.rsdn.ru/Forum/Message.aspx?mid=356055Автор: Павел Кузнецов
Дата: 18.08.03