3

我一直在查看在 GCC 6 中实现的 C++1z N4377概念 TS 草案,但我不明白拥有两种不同概念的目的:变量概念和函数概念。

功能概念草案的相关部分是[dcl.spec.concept (5.4)]

  • 声明应具有等效于{ return E; }where Eis a constraint-expression (14.10.1.3) 的函数体。

对于可变概念,在下一段 [(6.3)] 中:

  • 初始化程序应该是一个约束表达式

有什么他们中的一个可以做而另一个不能做的吗?如果没有,是否有理由同时包含两者?

注意:最新的草案,P0121R0在这方面没有任何改变

4

1 回答 1

5

函数概念可以在不同的模板参数数量上重载。变量概念没有提供函数概念所没有的任何东西,除了不放在()某些上下文中的能力。

从 TS 中删除可变概念不会降低概念的表达能力。

于 2016-03-10T22:42:59.077 回答