Esiste l'operatore decltype che restituisce il tipo della variable passata come argomento, tuttavia la discriminazione la devi fare con typeid o con i type_traits a seconda di cosa ti torna comodo.
Ti rimando alla relativa documentazione dei type_traits su cppreference per i dettagli.codice:auto t = make_tuple(10,"ciao"s); cout << typeid(decltype(get<0>(t))).name() << endl; cout << is_integral<std::remove_reference_t<decltype(get<0>(t))>>::value << endl;
Inoltre esiste anche tuple_element, ma li occorre eplicitare i tipi nella tupla.

Rispondi quotando