Олсо, меня действительно делают очень печальной пандой люди, считающие, что использование STL, буста и прочих темплейтов делает программу более сложной и непонятной.
С другой стороны, хорошо, что они все локализуются в проектах типа QutIM, поэтому их можно игнорировать всем скопом.
*c++
Блин, после хаскеля даже думать лениво начинаешь. А C++ eager, и не получится передать аргумент в функцию так, чтобы он был вычислен, только если действительно понадобится функции. :((((((((((((
Ну хаскель же!
const QStringList& folders = std::accumulate (sync.begin (), sync.end (), QStringList (), [] (const QStringList& fs, const QStringList& f) { return fs + QStringList (f.join ("/")); });
Правда, на х-ле покороче бы было, и существенно.
Очень хорошо себе в ногу выстрелил щас.
Был тривиальный геттер, возвращавший некий контейнер по значению. std::for_each (obj→GetList ().begin (), obj→GetList ().end, ...) работало как говно — падало и совершало многовато итераций вообще.
Очевидно, потому, что контейнер, блять, копировался каждый раз, и begin был ... more →
Умел бы std::unique_ptr требовать делитер в точке вызова деструкта ptr'а, а не инстанциирования, как это умеет shared_ptr, цены бы ему не было.
Из других ништяков — теперь для того, чтобы передать в функцию список из одного элемента, можно не писать уебищное Func (QList<SomeType> () << var), а просто воспользоваться Func ({ var }). Правда, похоже, завязка на Qt 4.8, ибо более ранние cannot into initializer lists, ну и похуй.
А как в этом вашем C++0x сделать шаблонную функцию от шаблонного аргумента типа T, которая имела бы одно тело, если у T есть какой-то метод, и иначе — другое? Изъебываться с type traits неохота. Есть C++0x в объеме, поддерживаемом gcc 4.5.
Кстати, strongly-typed enums — неговно. Больше не нужно изобретать недовенгерку в виде членов типа enum AccountCreationFeatures { ACFSupportsRegistration };. Можно сделать enum class AccountCreationFeatures { SupportsRegistration };, а потом везде
AccountCreationFeatures::SupportsRegistration. Уняня.
Сообщения об ошибках — это правда какой-то пиздец. Делаю std::transform в функции-члене, лямбда в котором должна дергать другую функцию-член этого класса.
С таким выражением (забыл this закапчурить):
std::transform (messages.begin (), messages.end (), std::back_inserter (newMessages), [] (decltype (messages.front ... more →
Начинаю потихонкьу привыкать к уебищной няшности (или к няшной уебищности?) C++0x:
auto pos = std::remove_if (messages.begin (), messages.end (), [] (const vmime::ref<vmime::net::message>& msg) { return msg→getFlags () & vmime::net::message::FLAG_SEEN; });
messages.erase (pos, messages.end ());
Посоны, мне сделали предложение, от которого я не могу отказаться. Реализовать в KDevelop поддержку х-ля.
Посоны, Breaking News! Boost нужен для лучшего управления памятью и улучшения штучек из STL.
Это я пообщался с одним руководителем QtDesktop.
Написал свою первую действительно нужную в типа-продакшене лямбду:
vmime::string id = ...;
auto pos = std::find_if (messages.begin (), messages.end (), [id] (const vmime::ref<vmime::net::message>& message) { return message→getUniqueId () == id; });
Проблевался.
С таким-то синтаксисом и auto нахуй не нужен. Никакого, блять, вывода типов.
У меня ПОЛНЕЙШЕЕ РАЗОЧАРОВАНИЕ. C++ как был чашей говна, так и остался.
Блять, парсер в KDevelop range-based for поддерживает, а GCC 4.5 — нет. Ну нахуй так жить?
Охренеть, оказывается, можно писать !boost::bind (f, ...) вместо пиздецом из boost::bind (std::logical_not (), boost::bind (f, ...));
Я фанбой. Фанбой плюсов. Я испытываю гордость от того, что знаю этот сраный язык и пишу на нем.
Открыл какой-то рандомный проект из избранных Евгением в рамках инициативы Qt Desktop. На второй секунде просмотра исходников глаз зацепился за uint setupCompleted : 1; или типа того вместо була.
Закрыл к хуям.
Кто-то ругался на сообщения об ошибках в темплейтах? Латех не лучше:
(/usr/share/texmf-dist/tex/latex/program/program.sty
! No room for a new \dimen .
\ch@ck ...\else \errmessage {No room for a new #3}
\fi
l.89 ...\@gtempa\newdimen\@gtempa\newdimen\@gtempa
\newdimen\@gtempa
?
Охуенно, блять, информативно.
Передаю @Elena'е по жабберам книгу Банды Четырех со скоростью, похоже, 2 КиБ/с. Книга 20 метров весит.
Ностальгия по диалапу, уняня.
*c++ is used by:
0xd34df00d
0xd34df00d
Пахом
Pahom
Hirthwork McGillah
hirthwork
analizer
analizer
профессиональный говноед
ulidtko
werehuman
werehuman
0x2207
0x2207
няша
generatorglukoff
Mагог Магогович
magog
4DA
4da
dorfe
dorfe
Оранжевус Охуеннус
utros
gelraen
gelraen
Darth Bricktop
Like-all
jabber
jabber
kb
kb
16+
238328
Cthulhu
Cthulhu
failman
failman
Джордж Ричмонд
richmond
Crazy_Owl
Crazy_Owl
beardog
beardog
amd63
amd63
Monah Tuk
hatred
Nico-izo
Nico-izo
nobiiru
nobiiru
K900
K900
Лисий хвост
madInsane
SirAnthony
SirAnthony
Minoru
Minoru
chemikadze
chemikadze
anonymous_owl
anonymous_owl
Артём
astecenko
asmer
asmer
Артс
arts
Anatoly Kalin
m4n71k0r
folex
folex
Дэш
dash
Maxim Kirenenko
part1zano
Ky6uk
Ky6uk
Michael Pogoda
MPogoda
taras
taras
18+ Запрещено для детей.
hedgehog
Andrew Motrenko
werdn
lexszero
lexszero
Rejjin
Rejjin
proton
proton
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
nstm0
nstm0
Илья Силаков-Волынский
iLeamare
Хотеть!
xotetb
Haomand
Haomand
RainerGomes
RainerGomes
0xd34df00d
Pahom
hirthwork
analizer
ulidtko
werehuman
0x2207
generatorglukoff
magog
4da
dorfe
utros
gelraen
Like-all
jabber
kb
238328
Cthulhu
failman
richmond
Crazy_Owl
beardog
amd63
hatred
Nico-izo
nobiiru
K900
madInsane
SirAnthony
Minoru
chemikadze
anonymous_owl
astecenko
asmer
arts
m4n71k0r
folex
dash
part1zano
Ky6uk
MPogoda
taras
hedgehog
werdn
lexszero
Rejjin
proton
eurekafag
rapture
Enoh
rogaboru
z56371410
mva
zetoke
anoos
DOMr
DJm00n
lHooFool
nexeuse
nstm0
iLeamare
xotetb
Haomand
RainerGomes