Quiero determinar si una plantilla de clase variable es la base de otra clase. Normalmente usaría std :: is_base_of, pero no creo que mi caso de uso se ajuste, y no estoy seguro si ya hay algo en std o boost para manejar esto. Quiero que el paquete de parámetros de la plantilla de la clase básica varíe provenga de otra plantilla de clase variadic. Aquí hay un código de ejemplo que se espera que explica lo que quiero hacer:¿Extrae el paquete de parámetros de plantilla variadic y lo usa en otra plantilla variadic en una metafunción de rasgos de tipo?
Uso:
is_variadic_base_of<
VarClassTemplA
, ClassDerivedFromA
, VarClassTemplB //Has param pack I want to use with ClassA
>::value;
Tripas:
//test for variadic base of non-variadic
template <template<typename...> class A, typename B, typename... ArgsC>
struct is_variadic_base_of
: std::is_base_of<A<ArgsC...>, B>
{};
es esto posible?
No estoy seguro si algo cambia, pero lo hice una pequeña edición de 'VarTemplClassB ', ahora es solo 'VarTemplClassB'. –
@Johannes: ¡Boo, algunos segundos! :( – Xeo
Lol, no sé cuántas permutaciones probé y no aterrizó en este. Funciona perfecto. Gracias! –