我看到它nullptr是在Visual Studio 2010中实现的.我喜欢这个概念,并希望尽快开始使用它; 但是GCC还不支持它.我的代码需要在两者上运行(但不必与其他编译器一起编译).
有没有办法"模仿"它?就像是:
#define nullptr NULL
Run Code Online (Sandbox Code Playgroud)
(这显然不会很好,只是为了表明我的意思.)
我已经看过关于这个的类似帖子,但是"Unable to resolve identifier nullptr"当它工作正常时,无法让Netbeans停止在我的代码中显示错误消息.我正确启用了C++ 11,不确定问题是什么?
在 Red Hat Linux 工作站上,我使用 devtoolset2 给出以下命令:
scl enable devtoolset-2 bash
Run Code Online (Sandbox Code Playgroud)
然后,当我调用 gcc --version 时,我得到:
gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)
Copyright (C) 2013 Free Software Foundation, Inc.
但是如果我编译我的程序(用cmake生成的malkefile,添加以下行:
if(UNIX)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11")
endif()
Run Code Online (Sandbox Code Playgroud)
我有以下错误消息:
cc1plus: error: unrecognized command line option "-std=c++11"
Run Code Online (Sandbox Code Playgroud)
如果我编译将 -std=c++11 替换为 -std=c++0x ,我会得到这些消息:
nullptr wasnt declared in this scope.
Run Code Online (Sandbox Code Playgroud)
考虑到 nullptr 是关键字,如何无法识别它?
我不明白,如果你有任何想法......