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

类型何时成为完整类型?下述C++程序是否应被拒绝?

类型何时成为完整类型?

下述C++程序是否应被拒绝?Clang似乎接受它。

template<typename T>
concept c = requires { T::n; };
struct z;
constexpr bool b(auto...) { return c<z>; }
struct z { int n; };
static_assert(not b()); // clang ok, gcc nope, msvc nope

当计算b()时,模板b已被隐式实例化,此时类型z已成为完整类型。但b中的表达式c<z>并不依赖于b的任何模板参数。因此问题的核心在于:c<z>应在模板b定义时解析,还是在实例化时解析?

内容的提问来源于stack exchange,提问作者303

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 06:23:10