Я пытаюсь построить кортеж, читая из буфера. Вот мой код:Ошибка при разборе буфера для создания кортежа
template<class T>
T read_from_stream(char *& stream)
{
T value;
memcpy(&value, stream, sizeof(T));
stream += sizeof(T);
return value;
}
template <typename ... Args>
tuple<Args...> parse(char * buffer)
{
return tuple<Args...>{read_from_stream<Args>(buffer)...};
}
и я использую его как
auto tup = parse<float, int, char>(buf);
Теперь предположим, что добавленные данные в буфер в последовательности поплавка, INT, символ ... read_from_stream вызывается в обратном порядке т.е. для char сначала, затем для int, а затем для float. Мне нужно указать типы параметров шаблона функции в обратном порядке (разбор), чтобы правильно прочитать данные. Я хочу, чтобы заказ был сохранен. Что я делаю неправильно?
Я использую vs2013 (обновление 4) по пути