C++ Xcode编译错误:使用未声明的标识符';使#u共享';
我已经将一些代码移植到Mac上,这些代码可以很好地使用VS2012进行编译。 但现在Xcode脱口而出一个错误,它无法识别“make_shared”函数。 这是c++11的一部分 我宣布如下:C++ Xcode编译错误:使用未声明的标识符';使#u共享';,c++,c++11,osx-mavericks,xcode5.1,make-shared,C++,C++11,Osx Mavericks,Xcode5.1,Make Shared,我已经将一些代码移植到Mac上,这些代码可以很好地使用VS2012进行编译。 但现在Xcode脱口而出一个错误,它无法识别“make_shared”函数。 这是c++11的一部分 我宣布如下: #include <tr1/memory> using namespace std; using namespace std::tr1; class BaseClass {}; class DerivedClass : public BaseClass {}; #包括 使用名称空间std;
#include <tr1/memory>
using namespace std;
using namespace std::tr1;
class BaseClass {};
class DerivedClass : public BaseClass {};
#包括
使用名称空间std;
使用名称空间std::tr1;
类基类{};
类DerivedClass:公共基类{};
代码如下:
shared_ptr< BaseClass > foo = make_shared< DerivedClass >("some param");
shared_ptrfoo=make_shared(“某些参数”);
我已经升级到Mac OSX Mavericks,
和Xcode版本5.1.1(5B1008)
我已将编译器设置为以下设置:
tr1
实际上不是C++11
的一部分,您是否尝试过包含
而不是
?是的,我也尝试过。但是编译器尖叫着命令我使用C++11标准库,如果你想使用它,你应该使用libc++
,而不是libstdc++
。Xcode提供了一个古老版本的libstdc++
,它只用于向后兼容。是的,我已经尝试了libc++和libstdc++两种版本,在这种情况下,我不知道出了什么问题。。。工作模板™. 很抱歉