помогите разобраться с шаблонизацией. есть класс, который занимается сериализацией данных для передачи по сети. использую 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<Args...>