C++ 为什么会有一些过眼烟云的提及;“功能原型”;在C++;11? 当然,这些不';t存在于C+中+;
C++11标准对“函数原型”进行了几次顺便提及 相关特征的任何定义中都没有,但在随机的地方,如:C++ 为什么会有一些过眼烟云的提及;“功能原型”;在C++;11? 当然,这些不';t存在于C+中+;,c++,language-lawyer,C++,Language Lawyer,C++11标准对“函数原型”进行了几次顺便提及 相关特征的任何定义中都没有,但在随机的地方,如: [C++11:3.3.4]中的“函数原型范围”(其定义实际上承认它在谈论“函数声明”) [C++11:17.5.1.4/1]中库类型定义条款的编辑说明,脚注175(似乎是指C功能) [C++11:20.9.4.3/6]它描述了假设的模板typename add\u rvalue\u reference::type create()作为“功能原型” 在[C++11:20.9.6/4]中也有同样的内容
中的“函数原型范围”(其定义实际上承认它在谈论“函数声明”)李>[C++11:3.3.4]
中库类型定义条款的编辑说明,脚注[C++11:17.5.1.4/1]
(似乎是指C功能)李>175
它描述了假设的[C++11:20.9.4.3/6]
模板typename add\u rvalue\u reference::type create()代码>作为“功能原型”
- 在
中也有同样的内容李>[C++11:20.9.6/4]
- 附录
讨论了C中的声明器:“使用C不完整声明样式的函数声明必须完成才能成为完整的原型声明,然后是后面的“基本原理:原型对类型安全至关重要”[C++11:C.1.7]
当然,我们是在“声明”/“定义”术语上,并且由于C++标准在其核心定义中不使用“原型”术语,这些只是键入/不一致,因为一些编辑器熟悉C术语,所以引入了/不一致。
还是我遗漏了一些微妙的含义?是和否。我认为“原型”的某些用法是有意义的,但其他用法确实应该改为“声明”
- 我同意§3.3.4/1应讨论“功能声明范围”,而不是“功能原型范围” < L> > 7.5.1.4是关于C++标题的,所以我认为它应该使用“声明”而不是原型。
- 我同意在§20.9.6/4和§20.9.4.3/6中使用“原型”都是错误的,应该使用“声明”
关于“原型”(或相关特征)的定义,ISO9899:1999(通过TC 3)是C++标准的规范参考,所以它的定义“原型”可以应用,因为C++标准本身不提供任何。
C原型如何“有很大不同”?在C中,原型是一个指定类型的函数声明。在C++中,所有函数声明都是这样做的。@基思:C原型支持标识符列表和各种奇怪的魔术,包括完全省略参数(或者是没有原型的声明)?如果没有别的,C++标准调用它们函数声明,所以有一小部分通过不同术语的引用是很奇怪的。“我想你们有这个。对不起,懒得找比JeyycFin更规范的东西:@答案可能是委员会成员不像你那样有肛门保持力:P@Praetorian:更规范的内容:6.2.1p2:“函数原型是一个函数的声明,用于声明其参数的类型。”