0xd34df00d 25.12.2011 11:51 Azoth_primary

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

QByteArray ToMRIM (const QString&);
QByteArray ToMRIM (quint32);
QByteArray ToMRIM ();

template<typename T, typename... Args>
QByteArray ToMRIM (T t, Args... args)
{
return ToMRIM (t) + ToMRIM (args...);
}

А затем использование, например:
return ToMRIM (Magic_, Proto_, Seq_, MsgType_, DataLength_, From_, FromPort_);

Хавает произвольное число аргументов. Типобезопасно. Уняня.

Recommended by: @ulidtko
1. generatorglukoff 25.12.2011 11:51 PsiAAE0B018

доброчую

2. magog 25.12.2011 11:55 Maemo

осталось аську впилить и все.

3. 0xd34df00dmagog /2 25.12.2011 11:55 Azoth_primary

Что — все?

4. DZhon 25.12.2011 18:18

Reinvented wheels^W type lists. Только с сахарком.

5. 0xd34df00dDZhon /4 25.12.2011 18:20 Azoth_primary

Ну дык.

6. DZhon0xd34df00d /5 25.12.2011 18:22

кстати, в студии 2010 вариадик для std::tuple эмулируется препроцессорной генерацией аргументов и закопанными еба-макросами без хэдер-гуардов.

7. ulidtko 26.12.2011 09:23

фап.

8. ulidtkoDZhon /6 26.12.2011 09:23

спасибо, поблевал.

9. DZhonulidtko /8 26.12.2011 09:25 Azoth

Оуе, я тоже.

Do you really want to delete ?