由于各种原因,我正在定义一种新型容器。我想大多类似于std::vector的界面;碰巧的是,出于枚举目的,我可以分别离开wchar_t *并wchar_t const*作为我的iterator类型和const_iterator类型。(这个容器是其他一些更大的数据结构之上的一个“视图”,恰好有一个矢量兼容的接口)
但是,如果我这样做std::copy,除非他们定义_SCL_SECURE_NO_WARNINGS. 这是一件好事——MSVC++ 的检查迭代器功能可以保护用户免受调试模式下的各种错误的影响。我希望通过在需要的地方实施此类检查功能来与此功能兼容。这留下了几个问题:
- VC 的
stdext::checked_iterator类在其构造函数中接受一个容器。该容器是否必须是内置 STL 容器类型之一? - 如何在 is 时禁用已检查的迭代
_ITERATOR_DEBUG_LEVEL器0? - 我怎样才能做到这一点,使容器可以移植到其他没有检查迭代器的编译器?(如果可能的话,我想避免两次实施整个事情)
升压解决方案没问题。