tengo una claseespecialización de plantilla para este tipo proporcionan una clase de rasgos
template <typename T> struct Dispatch;
que se utiliza para llamar a una función de tipo específico. Por ejemplo, supongamos que tiene como despachadores
template <> struct Dispatch <MyClass> {
static void Apply (void* a, MyClass& m)
{
::memcpy (a, &m, sizeof (m));
}
};
Ahora tengo un montón de clases para las que tengo un tipo de rasgo, ArrayTypes
. Me gustaría hacer algo como:
template <> struct Dispatch <enable_if<IsArrayType>>
{
template <typename ArrayType>
static void Apply (void* a, ArrayType& m)
{
::memcpy (a, &m, ArrayTypeTraits<ArrayType>::GetSize (m));
}
};
¿Esto es posible?