Специализация конструктора C ++ с использованием SFINAE - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть шаблонная структура, тип члена которой зависит от специализации:

template<typename T>
struct Base
{
    typedef T VT[4];
}

template<>
struct Base<float>
{
    typedef ___m128 VT;
} // And other similar specializations for int, uint etc...

template<typename T>
struct A
{
     typename A<T>::VT data;
}

Я хотел бы специализировать конструктор копирования для типов указателей и не указателей:

// Non-pointer
A::A(const A & a) : data(a.data) { }

// Pointer
A::A(const A & a) { memcpy(data, a.data, sizeof(data)); }

Я пытался использовать комбинацию std::enable_if и std::is_pointer, но я не могу заставить ее работать.Может кто-нибудь показать мне, как это делается?

...