由于各种原因,我正在定义一种新型容器。我想大多类似于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
? - 我怎样才能做到这一点,使容器可以移植到其他没有检查迭代器的编译器?(如果可能的话,我想避免两次实施整个事情)
升压解决方案没问题。