std :: vector <bool>はどのようにして生まれたのですか?


15

今日、事実上すべてのC ++開発者std::vector<bool>は、それが間違いではコンテナではないため、間違いであることに同意し、その使用例はstd::bitsetとにかく重複しています。

どのようにして標準に投票されましたか?当時は物議をかもしていましたか?主な支持論拠は何でしたか?


std::vector以前に書かれていませんでしたstd::bitsetか?
dan04


3
また、ハーブサッターはstd::vector<bool> ここここについて広範囲に書いています。彼の著作をもう少し掘り下げると、必要な情報がすべて見つかると思います。
ロバートハーヴェイ

回答:


10

引用されたリファレンスを使用したハーブサッターから:

ベクタスペシャライゼーションは、プロキシされたコンテナの記述方法の例を提供するために、意図的に標準に組み込まれました。「プロキシコンテナ」とは、オブジェクトが直接取得されないコンテナです。プロキシされたコンテナは、含まれているオブジェクトへのポインタまたは参照を提供する代わりに、含まれているオブジェクトに間接的にアクセスまたは操作するために使用できるプロキシオブジェクトを提供します。プロキシされたコレクションは、コレクション内のオブジェクトがメモリ内にあるかのように常に確実に直接アクセスできるとは限らない場合に役立ちます。必要です。そのため、そのようなプロキシ化されたコレクションを「コンテナ」の要件を満たす方法を示すことを考えました

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

  1. すべての詳細については、DejaNewsにアクセスして、Subject = "vector and bool"およびForum = " c ++ "の強力な検索を実行してください。議論は1997年1月/ 2月に行われました。また、ベクターの専門化を無効にする方法を尋ねる人々からのより最近の議論があります。私のアドバイスについては、この記事の終わりを参照してください。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.