필자는 모든 요소가 고유 한 힙 할당 내부 반복자 (즉, 외부 반복자가 해당 반복자를 가리킴)에 연결되어있는 펑키 연결된 목록 기반 데이터 구조를 만들고 있습니다. 아이디어는 요소가 제거 될 때 무효화되지 않는 반복자를 갖는 것이지만 대신 l.end()를 가리키고 있음을 알게됩니다.const 반복자에 shared_ptr을 사용할 수없는 이유는 무엇입니까?
어쨌든 나는 많은 오류가 발생합니다. 여기 컴파일되지 않는 클래스가 있지만 왜 그런지 이해하지 못합니다.
template<class T>
class pointer_node {
public:
pointer_node(const T& t) :
t(t), p_iter() {
}
pointer_node(T&& t) :
t(move(t)), p_iter() {
}
private:
T t;
std::shared_ptr<const std::list<pointer_node<T>>::iterator> p_iter;
};
내가 오류는 다음과 같습니다
../src/pointer_list.h:28:24 : 오류 : ISO C++이없는 유형 [-fpermissive] 와 '유형 이름'의 선언을 금지합니다. ./src/pointer_list.h:28:60 : 오류 : 템플릿 인수 1이 잘못되었습니다.
누군가이 오류를 설명 할 수 있습니까?