ISO C++标准草案稿

9
在 ISO 标准 C++ 中:最新的工作草案是 n3291,但它不是公开的。但 n3290 是可用的。截至二月份,草案是 n3242。我想知道现在哪个草案更正确成为最终草案?因为 n3242n3290 相比有很多差异?
在这个链接中,他们也给出了:n3242 作为当前工作草案?(为什么不是 n3290

http://www.open-std.org/jtc1/sc22/wg21/

http://en.wikipedia.org/wiki/C%2B%2B0x

请告诉我应该遵循哪个草案(直到最终草案发布)?


如果在http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2011/上有最新的草案,那么最高编号的草案就是当前正在使用的版本(目前为n3291)。 - Martin York
2个回答

9
有一段时间,n3291可以从显而易见的URL获取(只需在维基百科链接中搜索和替换n3242n3291)。但我猜某人认为那太接近最终版本,因此不再可用。
因此,维基百科没有链接到它,因为没有东西可链接。
当n3291可用时,我保存了一份副本。我没有进行详尽的搜索,但似乎没有实质性的更改;只有澄清。例如,n3242的第1.8节(6)如下所示:
“除非对象是位域或零大小的基类子对象,否则该对象的地址是它占用的第一个字节的地址。两个既不是位域也不是零大小的基类子对象的不同对象必须具有不同的地址。”
虽然n3291的同一部分如下所示:
除非一个对象是位域或零大小的基类子对象,否则该对象的地址是它占用的第一个字节的地址。如果两个不是位域的对象是另一个对象的子对象,或者至少其中一个是零大小的基类子对象,并且它们是不同类型的,则它们可能具有相同的地址;否则,它们必须具有不同的地址。

[更新2:N3337是下一个C++标准的初稿,与C++11最终标准非常相似。请参见:

C++11标准和免费草案N3337之间的章节编号是否不同?

因此,您可以选择免费草案;官方标准之前的最后一个(N3242)和之后的第一个(N3337)。所有草案似乎都使用相同的段落编号。


@ Nemo:可以告诉我你的结论吗?最终哪个更好,n3290还是n3242? - user751747
1
n3291只是n3242的更新版本。正如我所说,我相信所有的更改都是微不足道的。(就像我举的例子,或者像在<atomic>头文件中的所有函数中添加"noexcept"一样。) 在我看来,除了最模糊的目的之外,n3242已经完全足够了。 - Nemo
@user - N3290 是新的标准(除了一些拼写检查和排版)。 - Bo Persson
1
@nemo - 考虑到原始发布者已经对文档进行了密码保护,我猜他们不希望其他人再次发布它。一旦ISO的版本离开印刷厂,他们将尽快提供下载。真的很快! - Bo Persson
1
最重要的实际问题似乎是:在n3242中,对段落编号的引用是否与实际标准相符?看起来答案是“是”。太棒了! - Sjoerd

1
N3290和N3291之间的区别在于封面。N3291上写着“工作草案”,而另一个则没有。除此之外,它们说的都是一样的。
遗憾的是,由于ISO问题,两者都无法在线获取。最终标准可能只会对N3290进行相当小的更改,因此它们离最终版本太近了,不适合发布。特别是考虑到N3291已被投票为FDIS。

@user751747:需要什么方面的资料?除非你真的有N3290/91,否则你可能得不到它。所以N3242是你能得到的最好的资料了。 - Nicol Bolas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接