Господа, мне тут стало лень писать const_range и range как два разных класса, поэтому я решил сделать так:
http://bpaste.net/show/dZ7VgTjo6VG2lPJSk...
Использование:
NGramRange<const T*> getFeatures() const { return NGramRange<const T*>(m_features, m_features + size()); }
NGramRange<T*> getFeatures() { return ... more →
*c++
Ух ты, только что пришло в голову, что можно std::min применять и на итераторах, например, std::copy(start, std::min(start + count, scores.end()), ...);
Мелочь, а приятно.
Каждый раз, когда кто-то пишет reinterpret_cast, б-г убивает котенка.
Кажется, я сейчас убил кучу котят.
Для того, чтобы поймать баг, воспроизводимый только в релизном билде, потребовалось в нужный if-clause добавить вызов функции примерно такого содержания:
void langCheck (volatile int lang)
{
volatile int i = lang;
i *= 2;
}
и ставить брейк по имени функции. Иначе компилятор все вы-оптимизировал насмерть.
Вот кто мешал в Qt 4.8 сделать нормальную поддержку initializer_list искаропки? Нет же, приходится городить костыли вроде http://wstaw.org/m/2013/01/20/plasma-des...
Кстати, кдевелоп тут немножко просасывает с хайлайтом и парсингом.
Убедиться, что шаблонный тип-функтор возвращает lvalue reference?
template<typename T, typename F>
auto UpdateData (const T& newData, F getter) → typename std::enable_if<std::is_lvalue_reference<typename std::result_of<F (MediaInfo&)>::type>::value, void>::type;
Нет, конечно же, можно написать ... more →
Сегодня плюсы меня ошарашили двумя днищами подряд просто.
Первое — что компилятор, похоже, выводит темплейтные типы «локально», не обращая внимания на остальные аргументы. Иначе http://liveworkspace.org/code/2RfcKl$0 , который чинится либо явным указанием <int>, либо явным указанием типа второго аргумента ... more →
http://stackoverflow.com/questions/86708...
Вот почему в няшном хачкеле со всеми его RankN Polymorphisms и Undecidable instances все просто, а в плюсах — снова отсос?
А gcc уже умеет инлайнить вызовы виртуальных функций в final-классах? Ну или хотя бы избавляться от vtbl.
А еще, похоже, мне пора начать обмазываться даташитами на процессоры и все такое.
По крайней мере, похоже, для вещи типа
char ch = ...
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
something = true;
gcc генерит жутко неоптимальный код из кучи cmp/jz, которые сбивают нахер бранч предиктор.
В результате ... more →
std::find отсасывает у strchr с проглотом (4.8 секунды против 0.79). Хотя, казалось бы, инлайн, оптимизации компилятора и все такое.
Я уже, конечно, ныл об этом, но плюсцы снова соснули, в частности, с невозомжностью вывода типа T в какой-нибудь такой функции:
template<typename T>
Phonon::MediaSource GetRandomBy (QList<Phonon::MediaSource>::const_iterator, std::function<T (MediaInfo)>);
по такому вызову:
GetRandomBy (sources, [] (MediaInfo t) ... more →
Применяют ли современные компиляторы copy elision для функции типа
foo (T t)
{
vec [somePos] = t;
}
?
Имеет ли смысл здесь писать const T& вместо T, иными словами?
Система типов в плюсах соснула настолько, что невозможно запилить unordered_set, где у элементов есть неизменяемая часть, от которой и считается хеш, а остальная часть вполне себе может быть mutable.
Уже два часа открываю файл с рабочим проектом, думаю, как легко было бы реализовать алгоритм на функциональщине, а не на мерзких плюсцах с еблей и говном, закрываю файл и прокрастинирую.
Тут тоже надо найти куда нажать, чтобы починить.
Написание auto foo = ... вместо const auto& foo = ... может привести к деградации производительности в 30 раз.
Обожаю этот язык.
Благодаря #tioego прикрутил деманглинг неизвестных имен в неуспешно загруженной библиотеке, что одна из самых распространенных ошибок при погромировании под личкрафты:
[08.01.2013 05:10:13.279] [0x1d1eaf0] [008] Could not load library /usr/local/lib64/leechcraft/plugins/libleechcraft_gmailnotifier.so; Cannot load ... more →
Краткий смысл в том, что фирма Microsoft изначально не ставила задачу обеспечения работы STL в DLL. В связи с этим, STL содержит код, приводящий к вышеописанным проблемам. Связано это с наличием статических членов в классах, что приводит к разным неприятным последствиям при пересечении указателя или ссылки на ... more →
Попробовал закоммитить из KDevelop'а. Жить можно, но таки из сосноли удобнее.
Получил замечательный опыт рефакторинга кода, которому >5 лет и который знатно оброс говном и костылями. Чувствую, будто меня год валяли в грязи и перьях, а теперь я наконец-то помылся.
Охуеть, только заметил, что даже в достаточно сложных конструкциях gcc ругается, если write в переменную есть, а read'а из нее потом нет. До чего статический анализ дошел, а.
Правда, уже if (false) { smth } обламывает все эвристики.
Добавил новый тип в boost::variant, получил ошибок на no known conversion и прочее подобное счастье столько, что они не вмещаются в скроллбек-буфер Konsole, а KDevelop от них завис насмерть.
Люблю плюсы.
*c++ is used by:
0xd34df00d
0xd34df00d
Пахом
Pahom
Hirthwork McGillah
hirthwork
analizer
analizer
профессиональный говноед
ulidtko
werehuman
werehuman
0x2207
0x2207
няша
generatorglukoff
4DA
4da
Mагог Магогович
magog
dorfe
dorfe
Оранжевус Охуеннус
utros
gelraen
gelraen
Darth Bricktop
Like-all
kb
kb
jabber
jabber
16+
238328
Cthulhu
Cthulhu
failman
failman
Джордж Ричмонд
richmond
Crazy_Owl
Crazy_Owl
beardog
beardog
Лисий хвост
madInsane
SirAnthony
SirAnthony
amd63
amd63
Monah Tuk
hatred
Nico-izo
Nico-izo
nobiiru
nobiiru
K900
K900
anonymous_owl
anonymous_owl
Артём
astecenko
asmer
asmer
Minoru
Minoru
chemikadze
chemikadze
18+ Запрещено для детей.
hedgehog
Andrew Motrenko
werdn
Артс
arts
Anatoly Kalin
m4n71k0r
Дэш
dash
folex
folex
Maxim Kirenenko
part1zano
Ky6uk
Ky6uk
Michael Pogoda
MPogoda
taras
taras
Илья Силаков-Волынский
iLeamare
nstm0
nstm0
Хотеть!
xotetb
Haomand
Haomand
RainerGomes
RainerGomes
lexszero
lexszero
proton
proton
Rejjin
Rejjin
eurekafag
eurekafag
Spiritual ecstasy
rapture
Enoh
Enoh
rogaboru
rogaboru
Thordendal
z56371410
mva
mva
Fess
zetoke
anoos
anoos
DOMr
DOMr
Bender Bending Rodríguez
DJm00n
Смерть Неизбежна
lHooFool
nexeuse
nexeuse
0xd34df00d
Pahom
hirthwork
analizer
ulidtko
werehuman
0x2207
generatorglukoff
4da
magog
dorfe
utros
gelraen
Like-all
kb
jabber
238328
Cthulhu
failman
richmond
Crazy_Owl
beardog
madInsane
SirAnthony
amd63
hatred
Nico-izo
nobiiru
K900
anonymous_owl
astecenko
asmer
Minoru
chemikadze
hedgehog
werdn
arts
m4n71k0r
dash
folex
part1zano
Ky6uk
MPogoda
taras
iLeamare
nstm0
xotetb
Haomand
RainerGomes
lexszero
proton
Rejjin
eurekafag
rapture
Enoh
rogaboru
z56371410
mva
zetoke
anoos
DOMr
DJm00n
lHooFool
nexeuse