描述:
list<char>::iterator //可以指定选择子为 list<char>
std::iterator //那么这么定义是否正确,我需要一个表示任何类型的选择子
我现在定义了个虚函数
InsertObject(const ICadObject* pObj, std::iterator& rIter) = 0;
在VC下面没有问题,但在BCB中却抱错,说需要iterator的类型?就象list<char>::iterator 那样,这是怎么回事情啊,在线等?
解决方案1:
vc中的源码如下:它不能迭代任何类型:
struct input_iterator_tag {};
struct output_iterator_tag {};
struct forward_iterator_tag
: public input_iterator_tag {};
struct bidirectional_iterator_tag
: public forward_iterator_tag {};
struct random_access_iterator_tag
: public bidirectional_iterator_tag {};
// TEMPLATE CLASS iterator (from <iterator>)
template<class _C, class _Ty, class _D = ptrdiff_t>
struct iterator {
typedef _C iterator_category;
typedef _Ty value_type;
typedef _D distance_type;
};
没有万能的选择子!另外vc和bcb对于stl有不同的实现,bcb中没有定义iterator类型