5
У меня есть код что-то вроде этого:выводя типы кортежа в
template <typename T>
inline typename ::std::enable_if<
is_std_tuple<T>{},
T
>::type
get()
{
// pull tuple's elements from somewhere
}
Для того, чтобы вывести параметры типа шаблона кортеж был инстанцирован с, я сделал этот кастинг:
static_cast<T*>(nullptr)
и передать этот как параметр к функции
template <typename ...A>
void deduce_tuple(::std::tuple<A...>* const);
Я принимаю UB? Есть ли способ лучше?
Нет ничего плохого в том, что вы бросаете нулевой указатель на тип, если вы его не разыскиваете. Что вы все пытаетесь сделать? – Barry
Мне нужен пакет параметров «A ...» в функции и не знаю, как получить его иначе, кроме как с трюком индексов и ':: std :: tuple_element <>' – user1095108
Одно из преимуществ прилипания к 'tuple_size' и' tuple_element' - это то, что ваш код работает с 'std :: pair' и' std :: array' тоже бесплатно. –