Quantcast
Channel: Linux.org.ru: Форум (тех. форум)
Viewing all articles
Browse latest Browse all 73844

tuple

$
0
0

помогите разобраться с шаблонизацией. есть класс, который занимается сериализацией данных для передачи по сети. использую msgpack (c++). заготовки методов выглядят так:

template <typename... Args >
void pack(Args... args) {
    msgpack::type::tuple < Args...> tuple(args...);
    msgpack::pack(m_sbuf, tuple);
    // кортеж в буфере
}
template <typename... Args >
msgpack::type::tuple < Args...> unpack(Args ...args){
   msgpack::unpacked msg = msgpack::unpack(m_sbuf.data(), m_sbuf.size());
   msgpack::type::tuple < Args...> tuple(args...);
   msg.get().convert(tuple);
   return tuple;
   // вынули кортеж из буфера.
}

использование

// тут все ок
pack( true, 12, std::string("hello"));
//а тут как-то сомнительно
int i; bool b; std::string s;
msgpack::type::tuple < bool, int, std::string> tuple = unpack(b, i, s);
сомнительно, а именно формально нужно передать параметры в unpack, чтобы работало в приведенном варианте. можно ли сделать что-то типа
unpack<Args...>
, ну т.е. без формальной передачи параметров.

 ,


Viewing all articles
Browse latest Browse all 73844

Trending Articles