我们来看看下面的代码:
#include <iostream>
#include <vector>
#include <iterator>
template<typename T>
concept Iterable = std::is_same_v<decltype(begin(std::declval<T>())), decltype(end(std::declval<T>()))>;
void print(const Iterable auto& c) {
std::copy(begin(c), end(c), std::ostream_iterator<???::value_type>(std::cout, ", "));
}
int main () {
std::vector v{{10,20,30,40,50}};
print(v);
return 0;
}
我想知道应该写什么来代替???::value_type,因为在变量的定义中没有适当的类型限定。