get(int n, tuple<...> entries) {
for constexpr (e : entries) {
if (n == e.key) return e.value;
}
[unreachable]
}
Важно, что T может быть ссылкой.
Довольно несложно сделать
void get(int n, tuple<...> entries, T& out)
а вот прямо вернуть decltype(auto) — нетривиально.
нужно только тип или тип + значение?
Вернуть значение, вытащенное из тупля. Типы считаем is_convertible (T и e.value)
А как вы тогда представляете себе decltype(auto) там, если возвращаемый тип именно T?
template <class Tuple> decltype(auto) get(int n, Tuple entries); например
Обсуждают сегодня