У меня есть std::set
общих указателей на объекты определенного типа (здесь int
приведены только для примера). Что мне нужно, так это вставить общие ptr, построенные из необработанных указателей. Но когда я пытаюсь стереть некоторые из элементов набора (опять же, у меня есть только необработанный указатель), я должен построить shared_ptr
и передать его методу стирания (мне кажется, что это правда, потому что операторы сравнения shared_ptr
сравнивают свои необработанные указатели внутри) .
Фрагмент кода, ведущий к SIGABRT:
std::set<std::shared_ptr<int>> sett;
int *rp = new int(5);
sett.emplace( rp );
sett.erase( std::shared_ptr<int>( rp ) );
&a
. - person tkausl   schedule 08.02.2018shared_ptr
для управления указателем, указывающим на объект стека. - person llllllllll   schedule 08.02.2018shared_ptr
для управления 1 необработанным указателем. - person llllllllll   schedule 08.02.2018