У меня есть std::tuple
например
std::tuple<uint16_t, uint16_t, uint32_t> key{};
std::tuple<uint16_t, uint16_t, uint32_t> key2{};
const auto [k, p, r] = key;
, и я хочу сравнить со вторым кортежем, но только с первыми двумя аргументами.Примерно так:
if(std::tie(k, p, std::ignore) < std::tie(key)) { ... }
Если я делаю это таким образом, я получаю следующую ошибку:
error C2338: cannot compare tuples of different sizes
Как я могу это сделать?
РЕДАКТИРОВАТЬ1:
Оба кортежа имеют одинаковый размер.Я видел, как два сравниваются по EQUALITY с std::tie()
, но было бы лучше, я мог бы написать:
if(std::tie(k, p, std::ignore) == std::tie(key)) { ... }
EDIT2:
И что, если я хочу это:
if(std::tie(k, std::ignore, p) == std::tie(key)) { ... }