9

在 GCC 文档的此页面上的表格中,其中一项(大约在表格的中间)仅列为“核心语言”。这意味着什么?语言的哪些部分不包括在内?

4

3 回答 3

11

标准库是语言的一部分。为了表达只涉及语法规则、语义规则等而不涉及库的语言子集,人们使用术语核心语言。例如,C++ 委员会中有一个名为“核心工作组”(CWG)和“库工作组”(LWG)的工作组。

于 2012-11-04T19:01:21.923 回答
3

人们通常指的是 C++ 的所有内容,除了标准库,它也是语言规范的一部分。

举一个更权威的例子,Stephan T. Lavavej (STL) 是 Microsoft 的关键 C++ 开发人员。在他关于核心语言的系列讲座中,他将其定义为您可以访问的任何内容,而不包括任何标题。

他不认为自己是核心语言开发人员。例如,他研究的shared_ptr是 C++11 的基本部分,可以说比评论中提到的字符串和流更基本。

C++ 标准没有提到Core Language,但标准库

17 Library introduction
18 Language support library
19 Diagnostics library
20 General utilities library
21 Strings library
22 Localization library
23 Containers library
24 Iterators library
25 Algorithms library
26 Numerics library
27 Input/output library
28 Regular expressions library
29 Atomic operations library
30 Thread support library

我认为第 1-16 章(几乎?)只涉及核心语言,但可能还有更多。

于 2012-11-04T19:02:30.163 回答
1

Johannes 的回答解释了“核心语言”的一般含义。在您询问的特定上下文中,这意味着n3050的核心语言部分是在 GCC 4.7 中实现的,但不一定是库部分(论文中适用于第 17-30 条的那些更改)

事实上,一些库更改也在 GCC 4.7 中实现,但库状态记录在其他地方

于 2012-11-04T20:02:32.910 回答