struct Obj
{
Obj(P *p, int i): m_p(p), m_info(info) {}
std::auto_ptr<P> m_p;
int m_info;
};
std::vector<Obj> objects; // error C2558: struct 'Obj' : no copy constructor available...
문제는 여기 auto_ptr
에있는 것 같아요. auto_ptr
을 컨테이너에 푸시하는 것은 나쁜 일임을 모두 알고 있으며, auto_ptr
을 보유한 사람들을 컨테이너로 푸시하는 것은 좋지 않습니다. 내가 내가 boost::ptr_vector<P> objects
C++ 벡터 잡고 포인터
어떻게 당신이 그것을 분류하는 제안 사용하는 것이 더 m_info
필드 없었다?
왜 'auto_ptr'을 전혀 사용하지 않습니까? 아주 오래된 컴파일러를 사용하고 있습니까? – jalf
'auto_ptr'의 문제점이 무엇인지 모르겠지만 그것을 사용하지는 않았지만'shared_ptr'는 컨테이너에 저장하는 것이 안전합니다. –
아마도 바보 같은 질문 이겠지만 정확히 auto_ptr을 벡터에 넣는 것이 나쁜 이유는 무엇입니까? – Gaminic