如何使用SFINAE检测类型不完整的字段?

时间:2018-11-23 12:27:11

标签: c++ sfinae

我有一个trait类,它根据是否定义了其模板参数类型来实现某些接口:

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来检测具有不完整字段的定义类型。

0 个答案:

没有答案