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
доброчую
осталось аську впилить и все.
Что — все?
Reinvented wheels^W type lists. Только с сахарком.
Ну дык.
кстати, в студии 2010 вариадик для std::tuple эмулируется препроцессорной генерацией аргументов и закопанными еба-макросами без хэдер-гуардов.
фап.
спасибо, поблевал.
Оуе, я тоже.