У меня есть следующая функция шаблона, в качестве аргумента которой используется параметр шаблона.
template<typename T,
template <typename... ELEM> class CONTAINER = std::vector>
void merge(typename CONTAINER<T>::iterator it )
{
std::cout << *it << std::endl;
}
И следующий код использует этот код.
std::vector<int> vector1{1,2,3};
merge<int>(begin(vector1));
Работает как положено, но когда я использую
merge(begin(vector1));
Он не может вывести тип T
.
Я думал, что он может выводить тип из std::vector<int>::iterator it;
как int
.
Почему компилятор не может определить тип?