no type named 'shared_ptr' in namespace &#

2020-03-24 09:18发布

问题:

Hopefully this helps somebody else

Trying to compile an iOS project with Cedar BDD kept failing with no type named 'shared_ptr' in namespace 'std' error message. It was obviously a C++ error but couldn't understand why the C++ library Xcode was using didn;t have the shared_ptr type defined until I discovered the build settings of the target provides two libraries to choose from

  • libstdc++ (compiler default)
  • libc++

回答1:

selecting libc++ fixes the problem see screenshot



回答2:

Apple ship a very old version of libstdc++ that doesn't support C++11, so if you use libstdc++ you can't use C++11 features.



回答3:

In xcode you must use #include <memory>, you can not use #include <memory.h>. Please check this.