Я буду иметь это в виду, спасибо
я есть 2 функции для чтения двоичного файла.
Первая функция читаетsizeof(T)
байт из файла:
template<typename T>
T read() { ... some IO operations ... };
Вторая функция вызывает первый по несколько раз с каждым параметром шаблона:
template<typename... Ts>
std::tuple<Ts...> read_all() {
return std::make_tuple(read<Ts>()...);
};
Все работает нормально, кроме 1-го порядка вызова функций. Для чего-то вроде
uint32_t a;
uint8_t b;
std::tie(a, b) = read_all<uint32_t, uint8_t>();
первый будет называтьсяread<uint8_t>()
и после этогоread<uint32>()
который меняет порядок передачи параметров шаблона и портит порядок следования байтов в файле.
Конечно, я могу позвонитьread_all
с обратным порядком аргументов шаблона и получить правильный порядок в конце, но есть ли более очевидный способ сделать это?