为什么 C++ Concepts TS 中同时存在变量和函数概念?

2024-05-08

我一直在看 C++1zN4377 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4377.pdfGCC 6 中正在实现的概念 TS 草案,我不明白拥有两种不同概念的目的:变量概念和函数概念。

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

  • 声明应具有相当于的函数体{ return E; } where E is a 约束表达式(14.10.1.3)。

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

  • 初始化程序应是约束表达式.

有什么事情是他们其中一个可以做而另一个却不能做的吗?如果不是,是否有理由将两者都包括在内?

Note: the latest draft, P0121R0 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0121r0.pdf doesn't change anything in this regard


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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 C++ Concepts TS 中同时存在变量和函数概念? 的相关文章

随机推荐