模板专业化我有一个类用于类型提供性状类
template <typename T> struct Dispatch;
其用于调用特定类型的功能。举例来说,假设我有一个像
template <> struct Dispatch <MyClass> {
static void Apply (void* a, MyClass& m)
{
::memcpy (a, &m, sizeof (m));
}
};
调度员现在我有一堆的,我有一个类型的性状,ArrayTypes
类。我想做类似的事情:
template <> struct Dispatch <enable_if<IsArrayType>>
{
template <typename ArrayType>
static void Apply (void* a, ArrayType& m)
{
::memcpy (a, &m, ArrayTypeTraits<ArrayType>::GetSize (m));
}
};
这可能吗?