Получение ошибки: «shared_ptr» в пространстве имен «std» не называет тип

Я пытаюсь скомпилировать приложение для Android в андроид-студии (ndk r10d), которая использует некоторый код на C ++. Мне нужен C ++ 11, поэтому я добавил -std=gnu++11 (мне нужен gnu++11 вместо c++11 для расширения, которое я использую). Я использую stlport stl, из-за использования других библиотек, которые используют эту библиотеку stl. Поэтому мои параметры cFlags и stl в файле build.gradle выглядят следующим образом:

 stl "stlport_static" cFlags " mylib1.a mylib2.a ... -fexceptions -frtti -std=gnu++11" 

Я также включил память: #include <memory>

При попытке компиляции я получаю эту ошибку:

 'shared_ptr' in namespace 'std' does not name a type 

Я использую ускорение для интеллектуальных указателей до сих пор, но с переходом на c ++ 11 я предпочел бы использовать стандартную реализацию.

Solutions Collecting From Web of "Получение ошибки: «shared_ptr» в пространстве имен «std» не называет тип"

http://en.cppreference.com/w/cpp/memory/shared_ptr/make_shared используйте файл заголовка в коде.

 #include <iostream> #include <memory> 

@TC Похоже, вы были правы. Я видел ваше требование по другому вопросу, ища решение для своей проблемы, но поскольку библиотеки, которые я использую, компилируются с C ++ 11 и STLport, я думал, что это утверждение может быть неверным.

Я считаю, что библиотеки, которые я использую, не используют никаких функций C ++ 11, которые отсутствуют в STLport. Они используют только функции C ++ 11, которые поддерживает gcc-компилятор. Мне нужен gnuStl для поддержки функций, которые я использую.

Моим решением было использовать реализацию boost для интеллектуальных указателей и всех других отсутствующих функций C ++ 11.