我试图根据模板模板参数是否在其中定义了类型type
(例如std::remove_reference
具有type
成员类型别名),使用SFINAE重载模板类,但我无法想出一个好方法去做这件事。如何检查模板模板类的接口
例如,我想做的事
template <template <typename...> class Trait>
using EnableIfHasTypeMember = std::void_t<Trait::type>;
template <template <typename...> class Trait, typename OtherStuff,
EnableIfHasTypeMember<Trait>* = nullptr>
class Something { ... }
但是,这给了我一个编译器错误。有什么办法可以检查模板模板参数的界面吗?