Как обнаружить поле с неполным типом, используя SFINAE? - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть класс свойств, который реализует некоторый интерфейс в зависимости от того, определен ли его тип параметра шаблона:

template<class T, class=void>
struct traits {
   // impl for undefined types
};

template<class T>
struct traits<T, decltype(void(sizeof(T)))> {
   // impl for defined types
};

Это работает нормально, однако я получаю сообщение об ошибке, когда тип определен, но имеетчлен с неполным типом, например, при передаче экземпляра некоторого шаблона класса, где параметр шаблона сам по себе не определен.

Поэтому я хотел бы знать, существует ли какой-нибудь SFINAE-fu для обнаружения определенных типов с неполными полями.

...