社区讨论

关于结构化绑定与 concept

学术版参与者 6已保存回复 16

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
16 条
当前快照
1 份
快照标识符
@mhj20781
此快照首次捕获于
2025/11/03 19:25
4 个月前
此快照最后确认于
2025/11/03 20:36
4 个月前
查看原帖
我想要实现一个 concept C,其用于检查:
  • 对于一个类型 T v,下面这个表达式可以通过编译:auto [x, y] = v
如果直接根据定义写的话,应该是这样:
CPP
template <typename T>
concept C = requires(T v) {
    [](T t){ auto [x, y] = t; }(v);
};
这对于所有满足 CT 确实是对的,但是若 T 不满足 C(例如 T = int)就会直接编译错误,而不是我期望中的输出 0
求一个解决方案(也就是实现一个 concept C),或者明确指出这不可能。

回复

16 条回复,欢迎继续交流。

正在加载回复...