Как я могу определить, является ли тип производным от класса шаблона? В частности, мне нужно определить, имеет ли параметр шаблона std :: basic_ostream
в качестве базового класса. Обычно std :: is_base_of
является инструментом для работы. Однако std :: is_base_of
работает только для полных типов, а не для шаблонов классов.
Я ищу что-то вроде этого.
template< typename T >
bool is_based_in_basic_ostream( T&& t )
{
if( std::is_base_of< std::basic_ostream< /*anything*/>, T >::value )
{
return true;
}
else
{
return false;
}
}
Я уверен, что это можно сделать, я не знаю, как .