Я хотел бы создать функцию, которая создает различные типы генераторов (собственные классы) и я иду с чем-то вроде этого:шаблон C++ функция, возвращающий типа на основе аргументов шаблона
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...)
Кто-нибудь знает, если это возможно, и если да, то как это исправить?