내가전달 반복자
내가 수용 할 수있는이 클래스의 생성자를 만들 T 형식의 여러 값을 유지하는 새로운 템플릿 클래스 "CrazyBucket < T>를"만들려고 해요 2 개의 순방향 반복자를 인수로 사용하여 (T 유형의) 값을 클래스 인스턴스에 복사합니다.
CrazyBucket<T>::CrazyBucket(iterator< forward_iterator_tag, T > start, iterator< forward_iterator_tag, T > end)
{ ... }
하지만와 함께
나는 다음과 같은 오류가vector<int> vec;
vec.push_back(4);
CrazyBucket<int> bucket(vec.begin(), vec.end());
,
candidate constructor not viable: no known conversion from 'iterator' (aka '__wrap_iter<pointer>') to 'std::iterator<std::forward_iterator_tag, int>' for 1st argument
어떤 도움을 호출 할 때 어떻게해야 :
생성자내 생성자를 정의 많이 감사합니다.
미리 감사드립니다.
이 질문을 확인하십시오 - http://stackoverflow.com/questions/8751460/how-to-restrict-an-iter-to-being-a-forward-iterator –
왜 이렇게 간단한 것이 아닙니다 : http : //ideone.com/EU9FTK (허용되는 경우 답변으로 게시합니다). – PaulMcKenzie
@NickZavaritsky - 포인터 주셔서 감사합니다. 게시물을 올바르게 이해하지 못할 수도 있지만 포스터는 전달되는 반복자 유형을 제한하려고합니다. iterator가 가리키는 데이터 유형에 대해서는 언급하지 않습니다 (예제에서는 int). – Akanes