我正在尝试使用OSX 10.6.5上的gcc 4.6.2编译一些代码(下面)。这是微不足道的;但是编译器找不到unique_ptr。
#include <memory>
int main(int argc, char** argv)
{
std::unique_ptr<bar> foo(new bar(0));
}
我这样编译:
c++ main.cpp -o ./bin/main -std=gnu++0x -ansi -pedantic -Wall -Wno-long-long -Wno-deprecated -O3 -ansi -DNDEBUG -I/usr/include -I/opt/local/include
我尝试明确地包含bits / unique_ptr,但这导致我错误地说 GXX_EXPERIMENTAL_CXX0X 未定义。咦?如上所示,我明确要求gnu ++ 0x。我也试过“-std = c ++ 0x”,结果相同。
我做错了什么?
答案 0 :(得分:10)
您的命令有-ansi
(相当于-std=c++98
),这会覆盖-std=c++0x
。尝试删除它。