Я пытаюсь утверждать, что параметр шаблона будет получен из некоторого базового класса. Но базовый класс является общим и в контексте утверждения нет никакой разницы между любыми типами специализации. Как я могу утверждать, что параметр шаблона был получен из общего типа любого специализированного типа?is_base_of общего типа
Я пытаюсь написать это как
base_generic:
template<typename T> struct base_generic{};
derived_generic:
template<typename T> struct derived_generic : public base_generic<T>{};
класс с утверждением:
template<typename Tsource, typename Tderived_generic>
struct encoder {
static_assert(std::is_base_of<base_generic<typename>, Tderived_generic>::value);
};
Этот код компилируется, но утверждение f ails
Вы имеете в виду что-то вроде 'template struct base_generic {}; struct found_generic: base_generic {}; '? –
TartanLlama
Пожалуйста, напишите объявления для 'base_generic' и' deriv_generic'. – TartanLlama
Дайте минимальный, но полный образец того, что вы на самом деле делаете, пожалуйста. –