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

时间:2016-03-10 22:27:06

标签: c++ c++-concepts c++-ts

我一直在研究在GCC 6中实现的C ++ 1z N4377 Concepts TS草案,我不明白有两种不同概念的目的:变量概念和功能概念

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

  • 声明的功能体应相当于{ return E; },其中E约束表达式(14.10.1.3)。

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

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

他们中有什么人可以做,对方不能吗?如果没有,是否有理由同时包括两者?

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

1 个答案:

答案 0 :(得分:5)

可以在不同的模板参数arity上重载函数概念。除了在某些情境中不放置()的能力之外,变量概念不提供任何功能概念。

从TS中消除变量概念不会降低概念的表达性。