举个例, 某函数只允许使用双向迭代器解决思路
举个例, 某函数只允许使用双向迭代器
一旦使用了其他类型的迭代器, 函数就使用错误的例子, 谁能举例,
------解决方案--------------------
用 iterator_traits萃取迭代器类型即可
一旦使用了其他类型的迭代器, 函数就使用错误的例子, 谁能举例,
------解决方案--------------------
用 iterator_traits萃取迭代器类型即可
- C/C++ code
template<class T> void func( T arg ) { func( arg , iterator_traits<T>::iterator_category() ); } template<class T> void func( T arg , bidirectional_iterator_tag ) { } template<class T> void func( T arg , random_access_iterator_tag );//不实现,使用随机迭代器的话 链接 错误 int main() { list<int> x; func( (char*)0 ); func( x.begin() ); }