*c++

0xd34df00d 12.01.2012 22:06

interfaces/iinfo.h поменял @ все личкрафты перекомпилял.
Это недостаток, конечно же, да. А вот были бы в плюсах модули...

0xd34df00d 09.01.2012 23:17

Вообще, на самом деле, так как moc не может в шаблоннутые классы с макро Q_OBJECT, приходится применять следующий паттерн.
Определяется класс типа class ObjectBase : public QObject { Q_OBJECT ... };, в котором определяются все нужные сигналы и слоты, а затем определяется не-Q_OBJECT-шаблонный класс Object как-то ... more →

0xd34df00d 09.01.2012 23:11

Я, кажется, совсем ебанулся с темплейтами и пихаю полиморфизм времени компиляции по параметрам запроса в структуру, инстанциируемую нужным элементом енама. А так как QObject не может в темплейты, то получается класс-аггрегатор.

0xd34df00d 08.01.2012 10:50

Типичный кутимокод — класс, который делает много чего совсем несвязанного. Наружу выставлены функции, вроде как дергающие что нужно, но на деле они просто дергают одну Большую Мастер-Функцию, которая внутри через огромный switch все и делает.
Пиздец.

0xd34df00d 02.01.2012 19:23

То, что Qt так активно использует препроцессор — полный отстой. Например, похоже, нельзя написать вариадик типа void Call (const char *name, Args... args);, который бы разворачивался в вызов QMetaObject::invokeMethod (name, Q_ARG (T1, arg1), Q_ARG (T2, arg2), ...), где Q_ARG — макрос, принимающий тип и переменную ... more →

0xd34df00d 02.01.2012 19:06

Иногда легче сделать ручное управление памятью, нежели обмазываться-перемазываться shared/weak_ptr'ами. Логика не та.

0xd34df00d 29.12.2011 08:07

Реквестирую умный греп: нужно найти по проекту все структуры в анонимных неймспейсах.

0xd34df00d 28.12.2011 19:41

Джва часа проебался с непонятно как портящимся стеком и вообще полной пиздой от boost::optional, а оказалось, что программа линкуется с Boost 1.47, а optional юзает из 1.46.
Ебаный симейк.

0xd34df00d 27.12.2011 08:25

Uniform initialization syntax тоже неговно, хоть с ним код еще понятнее и поддерживаемее:
emit userStatusChanged ({-1, 0, statusId, email, QString (), title, desc, features, ua});

0xd34df00d 26.12.2011 14:15

Впрочем, в одном Анализер был прав. Теперь и я вместо return Group_.isEmpty () ? QStringList () : QStringList (Group_); пишу
QStringList result;
if (!Group_.isEmpty ())
result << Group_;
return result;

0xd34df00d 25.12.2011 11:51

Написал свой первый в жизни вариадик. Кончил.
Нужно сериализовать в особый формат наборы из всяких разных чисел и строк. Можно делать везде конкатенацию, типа, result = ToMRIM (num1) + ToMRIM (num2) + ToMRIM (shit) + ..., но это как-то криво. А с вариадиками все очень просто и охуенно:

QByteArray ToMRIM (const ... more →

0xd34df00d 25.12.2011 08:31

Вот и пригодились вложенные лямбды:
auto idHasName = [&info] (const QString& name)
{ return std::find_if (info.Identities_.begin (), info.Identities_.end (), [&name] (decltype (*info.Identities_.begin ()) id) { return id.name () == name; }) != info.Identities_.end (); };

Эта маленькая локальная функция ищет среди ... more →

0xd34df00d 24.12.2011 13:50

В общем, на предыдущий пост все равно никто не прореагировал, так что пишу разгадку: http://jabapls.ws/cpp-implicit-return-mo...

0xd34df00d 24.12.2011 12:48

Недавние проблемы с implicit move ctor заставили меня чуток поковыряться в теме, и, в общем, в очередной раз было выяснено, что C++0x — ебаное непродуманное говно.

Рассмотрим две программы: http://paste.pocoo.org/show/525322/ и http://paste.pocoo.org/show/525323/ . Отличаются тремя строками кода, не имеющими ... more →

0xd34df00d 22.12.2011 11:41

Почитал камменты на cpp-next. Абрахамс какой-то улыбчивый, мягкий и неконфликтный дохуя, аж не вяжется с образом матерого плюсоеба.

0xd34df00d 21.12.2011 21:23

\1 — \2. Блядь.

0xd34df00d 21.12.2011 19:20

Лямбды без вывода типов правда говно:
std::for_each (data→contactList.begin (), data→contactList.end (), [&allContacts] (const std::pair<std::string, MSN::Buddy*>& pair) { allContacts [pair.first] = pair.second→lists & (MSN::LST_AB | MSN::LST_AL | MSN::LST_BL); });
Ну и как там std::pair вывести бы самим?

0xd34df00d 21.12.2011 03:02

А теперь вообще можно не писать обычных free-функций. http://paste.pocoo.org/show/523844/

0xd34df00d 10.12.2011 02:50

gcc 4.5 и 4.6 ведут себя по-разному со статическими функциями в лямбдах. Например, для статической функции tr() такой код gcc 4.5 прохавает, а 4.6 уже нет, ругаться будет на незахваченный this:
[] () { tr ("test"); }

0xd34df00d 08.12.2011 11:50

Впрочем, при портировании pre-C++0x-кода на C++0x можно забавно выстрелить себе в ногу, захватив auto_ptr в лямбду по значению, например.

0xd34df00d 07.12.2011 21:22

Я совсем зафапался на C++0x, да. Код охуительно сокращается: http://paste.pocoo.org/show/517733/

0xd34df00d 07.12.2011 20:46

А вот это оче охуенно. Вместо того, чтобы писать

if (!version.name ().isEmpty ())
html += tr ("Name:") + ' ' + version.name () + "<br />";
if (!version.version ().isEmpty ())
html += tr ("Version:") + ' ' + version.version () + "<br />";
if (!version.os ().isEmpty ())
html += tr ("OS:") + ' ' + version.os () + ... more →

0xd34df00d 07.12.2011 19:13

Зато теперь вместо ужасов типа
new FetchQueue (boost::bind (&QXmppVCardManager::requestVCard, &Client_→vCardManager (), _1));
я могу писать что-то типа
new FetchQueue ([this] (const QString& str) { Client_→vCardManager ().requestVCard (str); });

По длине, правда, почти так же :( Плюсы все же ужасно вербозны.

0xd34df00d 06.12.2011 00:16

Впилил кеширование кучи ресурсов в азотх. Hit rate охуенен, ведь число хитов растет линейно со временем работы программы, а число miss'ов практически не изменяется. Соответственно, экономится 1-10 обращений в секунду к харду (какие из них попадут в кеш ОС, а какие таки приведут к обращению к харду — другой вопрос). ... more →

0xd34df00d 03.12.2011 21:38

Блядь, std::all_of — это охуенно.

Do you really want to delete ?

*c++ is used by:

0xd34df00d

0xd34df00d

Пахом

Pahom

Hirthwork McGillah

hirthwork

analizer

analizer

werehuman

werehuman

0x2207

0x2207

няша

generatorglukoff

4DA

4da

dorfe

dorfe

gelraen

gelraen

Darth Bricktop

Like-all

Rayslava

jabber

jabber

kb

kb

16+

238328

Cthulhu

Cthulhu

failman

failman

Crazy_Owl

Crazy_Owl

beardog

beardog

SirAnthony

SirAnthony

amd63

amd63

Monah Tuk

hatred

Nico-izo

Nico-izo

nobiiru

nobiiru

K900

K900

asmer

asmer

Minoru

Minoru

chemikadze

chemikadze

anonymous_owl

anonymous_owl

Артём

astecenko

Артс

arts

Anatoly Kalin

m4n71k0r

Дэш

dash

folex

folex

Maxim Kirenenko

part1zano

Ky6uk

Ky6uk

Michael Pogoda

MPogoda

taras

taras

lexszero

lexszero

Rejjin

Rejjin

proton

proton

eurekafag

eurekafag

Enoh

Enoh

rogaboru

rogaboru

kuroneko

Thordendal

z56371410

mva

mva

Fess

zetoke

anoos

anoos

DOMr

DOMr

sayafag

nexeuse

nexeuse

nstm0

nstm0

Хотеть!

xotetb

Haomand

Haomand

RainerGomes

RainerGomes