You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 17:29:32