さまざまな理由から、新しいタイプのコンテナーを定義しています。std::vector
のインターフェースにほとんど似たものにしたいと思います。そして、たまたま、列挙の目的で、 と を自分の型と型として残すことwchar_t *
がwchar_t const*
できiterator
ますconst_iterator
。(このコンテナは、たまたまベクトル互換のインターフェースを持つ他の大きなデータ構造の上にある「ビュー」です)
ただし、これを行うと、MSVC++ を使用しているユーザーはstd::copy
、 を定義しない限り、のようなアルゴリズムから非常に多くの警告を受け取ることになります_SCL_SECURE_NO_WARNINGS
。これは良いことです。MSVC++ のチェック イテレータ機能は、デバッグ モードであらゆる種類のバグからユーザーを保護します。必要に応じてこのようなチェック機能を実装することで、この機能に対応したいと考えています。これにより、いくつかの質問が残ります。
- VC の
stdext::checked_iterator
クラスは、コンストラクターでコンテナーを受け入れます。そのコンテナは、組み込みの STL コンテナ タイプの 1 つである必要がありますか? - の場合、チェックされたイテレータを無効にするに
_ITERATOR_DEBUG_LEVEL
はどうすればよい0
ですか? - イテレータをチェックしていない他のコンパイラにコンテナを移植できるようにするにはどうすればよいですか? (できれば全体を2回実装するのは避けたい)
ブースト ソリューションは問題ありません。