У меня есть функция шаблона, внутри которой я хочу создать вектор неизвестного типа. Я попытался сделать это автоматически, но компилятор говорит, что это запрещено.
Функция шаблона получает либо итераторы, либо указатели, как показано в тестовой программе внутри следующей основной функции. Как устранить проблему?
template<class Iter>
auto my_func(Iter beg, Iter end)
{
if (beg == end)
throw domain_error("empty vector");
auto size = distance(beg, end);
vector<auto> temp(size); // <--HERE COMPILER SAYS CANNOT BE AUTO TYPE
copy(beg, end, temp->begin);
.
.
return ....
}
int main()
{
int bips[] = {3, 7, 0, 60, 17}; // Passing pointers of array
auto g = my_func(bips, bips + sizeof(bips) / sizeof(*bips));
vector<int> v = {10, 5, 4, 14}; // Passing iterators of a vector
auto h = my_func(v.begin(), v.end());
return 0;
}