- @0xd34df00d: *programming *c++Yet another one. За такое руки оторвут?
const int pos = std::max (0, Ui_.VariantBox_->findText (current));
Ui_.VariantBox_->setCurrentIndex (pos);
Ну и да, раз уже почти к месту — приятно, что для добавления возможности писать не только на главный ресурс, но и на остальные по выбору, пришлось добавить только кнопочку на панельку и считывание ее значения. Все остальное уже было в архитектуре. Ня. - @0xd34df00d: *c++ *programming *stuffОказывается, 1% размера .so-шников можно сэкономить, если просто тупо повыкидывать везде лишний namespace Plugins.
- @kapsh: *juick_ppl *typical *@0xd34df00d *c++ *говно@gelraen: ну если выражение должно выдавать результатом true или false — то ок. а если число — то уге надо отрывать. потому как можно пропустить момент когда isMUC ВНЕАЗПНО станет int и побегать по граблям. ну и при чтении надо 0.5-1 лишних секунд на осмысливание того, что же, блять, этим автор хотел нам сказать
@0xd34df00d: Ты прав, 0.5-1 лишних секунд — это слишком мало. Сюда надо нахуячить шаблонов.
#11945086 months ago - @0xd34df00d: *c++ *тянВо-первых, пока ездил сегодня по Москве, почитал с андроеда статьи по Boost.Proto. Это просто охуенно. Это слов нет, как круто. Надо срочно впилить в личкрафты свой DSL для чего-нибудь, благо, я уже даже придумал для чего. И, чую, время сборки вырастет еще раза в два.
Во-вторых, жуйк, это нормально, если я испытываю, гм, excitement и почти что сексуальное возбуждение, когда вижу красоту костылей для плюсов типа этого же Boost.Proto и как там все круто и ништяк?6 months ago; 56 replies - @0xd34df00d: *c++ *говноСообщения об ошибках clang'а нихрена не помогают разрулить проблемы сложнее тупой опечатки. Темплейты-темплейты, я люблю вас за высеры, которые не влезают в буфер Konsole, стоит только дать неправильные аргументы boost::bind'у.6 months ago
- @0xd34df00d: *qt *говно *c++Как же не хватает возможности биндить параметры в кутешных сигналах/слотах при соединении. Ну ничего, это повод сгородить свой пиздец на boost и темплейтах.6 months ago; 19 replies
- @0xd34df00d: *programming *c++Все-таки у clang гораздо более информативные сообщения. Сравните няшный i.imgur.com и ужасный i.imgur.com
- @0xd34df00d: *c++ *говноТаки С++ прелестный язык, на нем можно круто выстреливать себе в ноги, причем тупо по описке и НЕЗАМЕТНО:
void Core::invalidateClientsIconCache (QObject *passedObj)
{
QObject *obj = obj ? obj : sender ();
...
} - @0xd34df00d: *c++ *говно *haskellТаки type inference в плюсах говно. Есть функция:
template<typename IqT>
void Update (const typename IqT::Item& item)
{
}
такой вызов: Update (QXmppRosterIq::Item ()); не сработает, придется писать явно Update<QXmppRosterIq> (QXmppRosterIq::Item ()); - @0xd34df00d: *c++ *haskellВ принципе, класс-кешер может также иметь шаблонным аргументом и сигнатуру функции, которая должна вызываться для создания объекта, если объекта в кеше нет. Тогда рекурсивной шаблонотой и всякими там вариадиками можно добиться чего-то типа
Cacher.GetItem (key, arg1, arg2, ..., argN);
где arg1 и так далее — аргументы функции-создателю объекта, которая будет вызвана, если объект не найден.
Но не, не буду я это впиливать, личкрафт уже и так достаточно долго компиляется. - @0xd34df00d: *c++ *haskell *pythonОбсуждение именованной, а не позициональной передачи аргументов в функции:
[15:41:36] 0xd34df00d: Можно перегрузить оператор запятая.
[15:41:48] 0xd34df00d: Чтобы запятая от строки возвращала враппер над кувэриантом.
[15:41:53] 0xd34df00d: А запятая от кувэрианта возвращала строку.
[15:42:00] 0xd34df00d: Тогда можно через запятую генерить мапу в одну строку.
[15:42:17] 0xd34df00d: И писать чо-то типа "title", QString (), "url", QUrl ("http://blah")
[15:42:19] 0xd34df00d: И так далее.
[15:42:22] 0xd34df00d: Но это уже совсем ебануться.
[15:42:32] Akon32: лисперам и не снилось..
[15:42:33] magog: что вполне в твоем стиле - @0xd34df00d: *c++ *haskell *qt *говноМожно писать на плюсах в хаскель-стиле (что я все чаще и успешней делаю), а можно писать на плюсах с хаскельнутым синтаксисом: qthaskell.berlios.de
- @0xd34df00d: *c++ *programmingКомбинировать разные стратегии владения не так уж и страшно.
Я попаду в ад.7 months ago; 11 replies - @0xd34df00d: *c++ *говноstruct { QVariant Entry_ } entrifier { QVariant::fromValue<Plugins::ICLEntry*> (entry) };
/home/d34df00d/Programming/leechcraft/src/plugins/azoth/core.cpp:629: warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x
Пора. Пора на C++0x.7 months ago; 10 replies - @0xd34df00d: *c++ *haskellТребуется по нашей роли в конференции, нашему affiliation, чужой роли и чужому affiliation, а также целевой роли, определить, можем ли мы целевого чувака перевести в целевую роль. Дико не хватает паттерн-матчинга из какого-нибудь хацкеля, поэтому я хочу нарисовать аналог на темплейтах —
template<MUCAffiliation ourAff, MUCRole ourRole, MUCAffiliation aff, MUCRole role, MUCRole targetRole>
class MayChangeRole;
И затем специализации для нужных вариантов комбинаций темплейтовых параметров.
Правда, блин, облом, это все в компил-тайме будет, какая пичаль :(
Ебаный С++.7 months ago; 112 replies - @0xd34df00d: *c++ *говноИнтероперабельность между либами такая интероперабельность:
RH_->GetRoom ()->setAffiliation (entry->GetEntryName ().toUtf8 ().constData (), static_cast<gloox::MUCRoomAffiliation> (newAff), reason.toUtf8 ().constData ());7 months ago; 27 replies