Как определить, получен ли тип из класса шаблона? В частности, мне нужно определить, имеет ли параметр шаблона 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;
}
}
Я уверен, что это можно сделать, я не могу думать, как это сделать.