web-dev-qa-db-ja.com

std :: vector <bool>はどうやって生まれたのですか?

今日、事実上すべてのC++開発者はstd::vector<bool>はコンテナーではないように見えるため、間違いであったことに同意し、その使用例はstd::bitsetの使用例とほとんど重複しています。

それはどのようにして標準に投票されましたか?当時は物議を醸したものでしたか?主な裏付けとなる議論は何でしたか?

15
xcvii

引用された参照を使用してハーブサッターから:

ベクトルの特殊化は、プロキシされたコンテナを作成する方法の例を提供するために、意図的に標準に組み込まれました。 「プロキシコンテナ」とは、直接アクセスできないオブジェクトを持つコンテナです。プロキシされたコンテナは、含まれているオブジェクトへのポインタまたは参照を提供する代わりに、含まれているオブジェクトに間接的にアクセスまたは操作するために使用できるプロキシオブジェクトを提供します。プロキシされたコレクションは、コレクション内のオブジェクトが常にメモリにあるかのように直接確実に直接アクセスできるとは限らない場合に役立ちます。たとえば、ディスクベースのコレクションでは、カバーの下でメモリの一部を自動的にページに出し入れします。必要。そのため、このようなプロキシされたコレクションを、標準ライブラリで定義されている意味での「コンテナ」の要件に適合させる方法を示すことが目的でした。

そして、はい、その時に議論がありました。

  1. すべての厄介な詳細については、DejaNewsにサーフィンして、Subject = "vector and bool"およびForum = "c ++"のパワー検索を実行してください。議論は1997年1月/ 2月に行われました。また、ベクターの特殊化をオフにする方法を尋ねる人々からのより最近の議論も見つかります。私のアドバイスについては、この記事の最後を参照してください。

残りは歴史です。そして、私はそのような良いリンクで未回答の質問を見ることを嫌います。

10
david.pfx