繁体   English   中英

什么是“ANSI C++”?

[英]What is “ANSI C++”?

有人告诉我,C++98 在正式标准化为 ISO/IEC 14882:1998 之前是在 ANSI 下编写的。

我知道 ANSI 与 C 有关,但我似乎找不到太多证据证明“ANSI C++”这个短语非常准确。

  • “ANSI C++”是对 C++98 的一个很好的描述吗?
  • “ANSI C++”是对C++标准后续版本的一个很好的描述吗?

最初,在 89 年,C++ 的标准化由 ANSI X3J16 处理。 从 91 年 ISO WG21 开始加入。您可能想阅读 BS 的A History of C++:1979-1991 IMO,“ANSI C++”只是一个剩下的名字; 即使 ANSI 间接参与标准化,该语言也是“ISO C++”。

这个gotw页面描述了ANSI和ISO就C++而言的关系,简要说明:

ISO 和美国委员会的正式名称是:

ISO/IEC JTC1/SC22/WG21 - C++(ISO C++委员会)

INCITS PL22.16 - C++ (the US C++ committee, often called the "ANSI C++ committee" -- although more accurately INCITS is a separate organization that is not a part of ANSI but is accredited by ANSI to develop US standards) (previously called X3J16 和 J16)

这两个团体通常以单数形式被称为“C++ 委员会”,因为他们会面并一起工作。 会议总是同时在同一个房间

听起来这个委员会制定的 ISO 标准自动成为了美国标准,虽然我相信那些真正在这些委员会工作的人可以更好地解释。

有点,但不是真的。 C++ 没有,也从来没有单独的 ANSI 标准。

然而,当前的标准实际上是INCITS/ISO/IEC 14882-2003 自 2003 年起,INCITS 成为一个独立的 ANSI 认证组织。 INCITS 这个名字并不新鲜,但以前它是 ANSI 的一部分。 2003 年,它被“ 分拆”为一个独立的(但仍获得 ANSI 认证的)组织。 因此,当前的(2003 年)标准显示为 INCITS/ISO/IEC 标准,我相信即将推出的(2011 年)标准也将如此。

C++98 由一个国际委员会开发,该委员会是国际标准化组织 (ISO) 的一部分。 ANSI 和其他国家标准机构是该委员会的成员。 该国际标准已被 ANSI 采用为美国国家标准,许多其他国家标准机构也采用该标准。

早期版本由 AT&T 在美国进行商业开发; 我不确定 ANSI 是否涉及中间版本(编辑:但 Erik 的回答表明它是简单的)。

“ANSI C++”是对 C++98 的一个很好的描述吗?

我会称它为“标准 C++”,或“C++98”,或者只是“C++”,如果很明显我在谈论当前的标准。 虽然在技术上是准确的,但“ANSI C++”可能会让那些没有意识到它的含义相同的人感到困惑,尤其是来自其他国家的人,他们可能不知道 ANSI 是什么。 如果我称它为“British Standard C++”,我可能会觉得奇怪,这是一个同样准确的描述。

“ANSI C++”是对C++标准后续版本的一个很好的描述吗?

一样的答案。 C++ 标准由 ISO 制定,并被 ANSI 和其他机构采用。

AFAIK 当他们说“ANSI C++”时,他们的真正意思是“没有编译器特定的扩展”。

ISO 工作组创建标准。 在 ISO 委员会(他们是同一个人)的主持下进行标准化之前,C++98 在美国(因为这是 C++ 的创建地,以及它的创建者居住的地方)在标准化方面做了很多工作。 最终的 ISO 标准随后被 ANSI 和其他国家标准机构采用。

我一直将标准 C++ 称为“标准 C++”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM