【发布时间】:2012-01-05 11:48:52
【问题描述】:
我想使用 stl hashmap,除其他外,我发现 c++ 没有它,但 c++0x 有 - 所以作为不是最新的人 - c++0x 可以安全使用? (它是否已经经过全面测试并且可以指望相对没有错误?)。如果是这样-似乎有很多较新的版本(c ++ 11)-我应该使用它们,还是它们仍然不够可靠。实际上无论如何,当我尝试使用新界面中的某些东西时,我的 linux 编译器告诉我必须包含 c++0x - 所以我想我的编译器不是最新的 enoug
【问题讨论】:
-
安全对您意味着什么? C++ 程序不安全;他们可以而且确实会崩溃。像 Ocaml 或 Haskell 这样的强类型语言更安全。
-
GCC 4.6 支持 C++0x。
-
C++11 是一个标准(也就是说,一个 PDF 文档),而不是一个可以“被测试”或“有 bug”的实际实现。假设你的 linux 编译器是 GCC,它支持 C++11 的各个部分。使用
--std=c++0x开启部分支持。那里可能没有非常错误,但不一定符合标准。因此,如果您认为缺少的功能是错误,那么它就是错误的。 -
您可以在此处检查各种编译器对 c++0x 的支持:wiki.apache.org/stdcxx/C++0xCompilerSupport
-
@Basile :我没有使用“安全”这个词,我说的是“强类型”——C++ 是强类型的。