hirthwork
22.01.2013 03:07 mcabber
каждый раз, когда дедфуд пишет об очередном своём ниасиляторстве плюсцов, б-г убивает кусочек его мозга.
оно и заметно
Ну а проверь быстро, что char[2] оба равны нулю.
c[0] == 0 && c[1] == 0;
и не вздумай кукарекать, что это кококонеоптимально, производительность, оптимизация
небось в соседней функции с диска читаешь или даже в сокет пишешь. а затем байтоёбствуешь, чтобы самоутвердиться
алсо, ещё скажи что цомпилятор это вообще никак не оптимизировал
На самом деле нет, у меня в этой функции 20% времени.
А еще можно or'ить, (c[0] | c[1]) == 0. Аааааааааааа, сссссссссссссссука, смайл.
ХЗ.
кстати, да. or должен быть быстрее, ибо после выполнения or достаточно только проверить zero flag.
ну правильно, зачем проверять. лучше напишу ещё один reinterpret_cast
Я просто люблю убивать котят.
Лучше бы мне кто объяснил, почему этот код написан так
typedef std::pair<const char*,const char*> const_char_pair_t;
inline bool operator< ( const const_char_pair_t& l, const const_char_pair_t& r )
{ return (strcasecmp( l.first, r.first )<0); }
const_char_pair_t str_exceptions[] = {
const_char_pair_t("недели","недел"),
const_char_pair_t("память","памят")
};
struct const_char_pair_t_comp {
bool operator()( const const_char_pair_t& l, const const_char_pair_t& r ) const
{ return (l< r); }
};
inline const char* get_exception_stem( const char* s )
{
std::pair<const const_char_pair_t*,const const_char_pair_t*> i =
std::equal_range(
ARR_BEGIN(str_exceptions),
ARR_END(str_exceptions),
const_char_pair_t(s,0),
const_char_pair_t_comp());
if( i.first!= i.second ) {
return i.first→second;
} else {
return 0;
}
}
Сука, блядь, понаперегружали операторов, я теперь понимаю, почему люди иногда ненавидят сиплюсплюс, потому что когда другие люди вот так вот пишут, хуй чо проссышь.
мне всё просто и понятно, а ты просто ниасилил
Я не понимаю, зачем оно написано так, как оно написано.
алсо, стемминг — для ниасиляторов нормального синтаксического анализа
Для нас. Олсо, это кусок орфография-онли-спеллчекера, нахуй в спеллчекере синтаксический анализ?
задел на будущее. в случае омонимии одно слово может давать две стеммы. но вот весь остальной код пока умеет работать только с одним результатом, поэтому возвращает не i, а char*
чтобы согласование падежей проверять
> орфография-онли
Согласование падежей нам не нужно. Спеллчекер нам нужен не для пользователя, а чтобы понять, чо пользователь хотел от системы.
Хуерда.
джигурда