decltype关键字是否会禁用SFINAE?关于std::variant类型特征特化时SFINAE失效的疑问
decltype关键字是否会禁用SFINAE?关于std::variant类型特征特化时SFINAE失效的疑问
我最近在折腾给std::variant写个类型特征,先搭了个主模板:
#include <type_traits> #include <variant> template <typename V, typename = void> struct is_variant : std::false_type {};
结果当我按照自己的思路实现特化版本后,发现SFINAE好像直接失效了——比如我把普通的int类型传进去,代码根本没回退到主模板,反而直接触发了编译错误(报错信息没粘贴全,只看到和static相关的内容)。这让我一头雾水:难道是decltype关键字把SFINAE给禁用了?
备注:内容来源于stack exchange,提问作者TriZ
相关产品推荐
相关产品推荐

