Я пытаюсь использовать std::shared_ptr
в своем коде.Я видел, что были другие вопросы по этому вопросу, но я все еще получаю ошибку компилятора.Я получил правильную версию gcc и настройки?
Что я сделал:
Я попытался скомпилировать мой код с обоими заголовками отдельно - <memory>
и <tr1/memory>
, но все равно получаюниже приведены ошибки в обоих случаях.
Используемая версия gcc:
gcc --version
gcc (GCC) 4.3.2
Когда я включаю заголовок <memory>
, я использую std::shared_ptr
и с заголовком <tr1/memory>
Iиспользовать std::tr1::shared_ptr
?Это правильно?
Я настроил shared_ptr следующим образом:
std::shared_ptr<A*> ptr_A = shared_ptr( new A() );
Я получаю следующую ошибку:
src/WH.cxx:156: error: 'shared_ptr' is not a member of 'std'
src/WH.cxx:162: error: 'shared_ptr' was not declared in this scope
при попытке <tr1/memory>
header
src/WH.cxx:156: error: 'std::tr1' has not been declared
src/WH.cxx:162: error: 'shared_ptr' was not declared in this scope
Похоже, что я не правильно что-то включаю.Любые идеи?
Я знаю, что библиотека повышения имеет shared_ptr
, но эти библиотеки для меня не вариант в настоящее время.
РЕДАКТИРОВАТЬ: Просто добавить, мои параметры компилятораследующим образом: g ++ -O3 -g3 -m32 -fPIC -Wno-deprecated -pthread -m32 Я что-то упустил?
PS Есть ли какая-нибудь полезная литература по интеллектуальным указателям std?