编辑:我(和其他像我一样的人)是否必须密切关注构建时间、不可读的代码和缺乏可移植性,并进行大规模原型设计以确保继续使用新标准是安全的?
是的。但是你也必须用当前的标准来做所有这些事情。我没有看到 C++0x 变得更糟。
C++ 构建时间总是很糟糕。不过,C++0x 没有理由比现在慢。与往常一样,您只包含您需要的标题。据我所知,每个标题都没有明显变大。
当然,概念是这里最大的未知数之一,人们担心它们会显着减慢编译时间。这是他们被裁掉的众多原因之一。
如果您不小心,C++ 很容易变得不可读。同样,那里没有什么新鲜事。再一次,C++0x 提供了很多工具来帮助最小化这个问题。Lambda 不像 Python 或 SML 那样简洁,但它们比我们今天必须定义的函子更具可读性。
至于可移植性,C++ 已经是一个雷区。不保证整数类型大小,也不保证字符串编码。在这两种情况下,C++0x 都提供了解决此问题的工具(使用 Unicode 特定的字符类型和保证固定大小的整数)
即将出台的标准明确了目前阻碍可移植性的一些问题。
所以总的来说,是的,你提到的问题是真实的。它们今天存在,它们将存在于 C++0x 中。但据我所知,C++0x 减轻了这些问题的影响。它不会让他们变得更糟。
没错,合规标准需要一段时间才能在所有平台上可用。但我认为这将是一个比 C++98 更快的过程。
所有主要的编译器供应商似乎都非常热衷于 C++0x 支持,而上次并非如此。(可能是因为当时主要是调整和修复他们已经实现的预标准功能,所以更容易声称您的预标准编译器“几乎与 C++98 兼容”。
我认为总的来说,C++ 社区比十年前更加关注标准和前瞻性。如果你想出售你的编译器,你将不得不认真对待 C++0x。
但是从标准发布到完全(或大部分)兼容的编译器可用,肯定会有几年的时间。