举个例, 某函数只允许使用双向迭代器解决思路

举个例, 某函数只允许使用双向迭代器
一旦使用了其他类型的迭代器, 函数就使用错误的例子, 谁能举例,

------解决方案--------------------
用 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() );
}