C++ Xcode编译错误:使用未声明的标识符';使#u共享';

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;

我已经将一些代码移植到Mac上,这些代码可以很好地使用VS2012进行编译。 但现在Xcode脱口而出一个错误,它无法识别“make_shared”函数。 这是c++11的一部分

我宣布如下:

#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) 我已将编译器设置为以下设置:

  • 将源代码编译为objective-c++
  • c++语言方言c++11[-std=c++11]
  • C++标准库:LIbSTDC++(GNU C++标准库)< /LI>
    tr1
    实际上不是
    C++11
    的一部分,您是否尝试过包含
    而不是
    ?是的,我也尝试过。但是编译器尖叫着命令我使用C++11标准库,如果你想使用它,你应该使用
    libc++
    ,而不是
    libstdc++
    。Xcode提供了一个古老版本的
    libstdc++
    ,它只用于向后兼容。是的,我已经尝试了libc++和libstdc++两种版本,在这种情况下,我不知道出了什么问题。。。工作模板™. 很抱歉