Интерфейс, кажется, не должен пострадать. Просто указывать не
template <class... T>
void process(std::tuple<T...>)
а просто
template <class T>
void process(T)
а внутри уже разруливать типы элементов. Не?
М.б. anyway наружу будет торчать std::array, что меня немного волнует. Ведь реально причин для этого, кроме ограниченности std::tuple нет.
Зато можно будет в функции, принимающей результат query, не зависеть от типа вообще. И даже обычные структуры туда передавать. Вдруг это плюс, а не минус?
есть мнение, что если можно в сигнатуре функции более строгие типы указать, то лучше так и сделать, чем class T f(T)
Ну тогда array обломится. ХЗ, хорошо это или плохо. Можно сделать concept, что-то типа tuple_like.
Обсуждают сегодня