В частности, я ищу что-то вроде этой конструкции:
template<class T> struct tag { using type = T; };
Это можно использовать для предоставления аргумента шаблона конструктору.
c ++ 20 будет иметь std::type_identity
std::type_identity
Повышение имеет boost::type_identity
boost::type_identity
std::in_place_type_t может быть предпочтительным в качестве типа тега для конструктора. Он используется конструкторами std::any и конструкторами std::variant .
std::in_place_type_t
std::any
std::variant
Посмотрите на std :: type_identity . Пример реализации - это именно тот фрагмент, который вы опубликовали.