我一直在研究在GCC 6中实现的C ++ 1z N4377 Concepts TS草案,我不明白有两种不同概念的目的:变量概念和功能概念
功能概念草案的相关部分是[dcl.spec.concept(5.4)]
{ return E; }
,其中E
是约束表达式(14.10.1.3)。和变量概念,在下一段[(6.3)]中:
他们中有什么人可以做,对方不能吗?如果没有,是否有理由同时包括两者?
注意:最新草稿P0121R0在这方面没有任何改变
答案 0 :(得分:5)
可以在不同的模板参数arity上重载函数概念。除了在某些情境中不放置()
的能力之外,变量概念不提供任何功能概念。
从TS中消除变量概念不会降低概念的表达性。