다른 유형의 생성기 (자체 클래스)를 생성하는 함수를 만들고 싶습니다. 다음과 같이 사용합니다.
template <typename Iterator>
class Generator {
Iterator begin_;
Iterator end_;
public:
Generator(Iterator begin, Iterator end)
: begin_(begin)
, end_(end)
{}
};
template <typename GeneratorType, typename ContainerIterator>
GeneratorType<ContainerIterator> make_generator(ContainerIterator begin, ContainerIterator end){ // Error occurs here
return GeneratorType<ContainerIterator>(std::forward<ContainerIterator>(begin), std::forward<ContainerIterator>(end));
}
그러나 오류 이후 컴파일되지 않습니다.
error: 'GeneratorType' is not a template (in line GeneratorType<ContainerIterator> make_generator...)
가능한지 알고 있다면 그것을 고치는 방법을 아는 사람이 있습니까?
make_generator
의 정의 변경
template <template<class> class GeneratorType, typename ContainerIterator>
GeneratorType<ContainerIterator> make_generator(ContainerIterator begin, ContainerIterator end)
템플릿을 다른 템플릿에 매개 변수로 전달할 수 있습니다. 그러나 매개 변수 정의는 템플릿 템플릿 매개 변수를 예상하는 것으로 지정되어야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다