提问人:Jan Schultke 提问时间:9/27/2023 最后编辑:Jan Schultke 更新时间:9/30/2023 访问量:98
类型约束的立即声明的约束表达式是如何组合的?
How are the immediately-declared constraint-expressions of type-constraints combined?
问:
如果是一个概念,那么以下结构是否等价?C
template <C A, C B>
template <typename A, typename B>
requires C<A> && C<B>
换句话说,所有立即声明的约束表达式是否都与通过连词()组合的类型约束相关联?&&
我找不到任何措辞来证实这一点。
请注意,这种细微差别非常重要,因为如果使用连词,则带有 and 参数的模板将比另一个具有 only 或约束的模板受到更多限制。如果没有连词,那么两者都不比另一个受到更多的约束。C A
C B
C<A>
<B>
答:
1赞
user17732522
9/30/2023
#1
是的,它们按指定的顺序组合在一起以形成关联的约束,其中包括模板参数列表中引入的类型约束,按其外观顺序排列 [temp.constr.decl]/3.3.1。
因此,在两个声明中,关联的约束是相同的:C<A> && C<B>
评论