Я пытаюсь использовать std :: shared_ptr
в своем коде. Я видел, что были и другие вопросы по этому поводу, но я все еще получаю ошибку компилятора. Есть ли у меня правильная версия gcc и установка?
Что я сделал:
Я попытался скомпилировать свой код с обоими заголовками отдельно -
и
, но в обоих случаях все равно получаются ошибки, указанные ниже.
Я использую версию gcc
gcc --version
gcc (GCC) 4.3.2
. Когда я включаю заголовок
, я использую std :: shared_ptr
и с
Заголовок, который я использую 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
при попытке заголовка
src/WH.cxx:156: error: 'std::tr1' has not been declared
src/WH.cxx:162: error: 'shared_ptr' was not declared in this scope
Похоже как будто я что-то не включаю правильно. Есть идеи?
Я знаю, что в библиотеке boost есть shared_ptr
, но эти библиотеки на данный момент мне не подходят.
РЕДАКТИРОВАТЬ: Просто чтобы добавить, мои параметры компилятора следующие: g ++ -O3 -g3 -m32 -fPIC -Wno-deprecated -pthread -m32 Я ничего не хватает?
PS Есть ли полезная литература по интеллектуальным указателям std?