私はなぜstd::bitset::reference
とstd::vector<bool>::reference
が明示的なデストラクタ(コンパイラが生成したものではない)を指定しているのだろうと思います。例えば、boost::dynamic_bitset::reference
はそのようなデストラクタを指定していないようです。C++標準でstd :: bitset :: referenceのデストラクタが指定されているのはなぜですか?
答えて
標準デストラクタとして~reference()
に言及したからといって、それがユーザー提供(libstdc++とSGI/STLがそれを行う方法です)ノーオペレーション{}
ようにする必要があり意味するものではありません。また、ユーザが=default
と宣言したり、暗黙的に左に定義したりすることもできます(libc++と同じです)。それにかかわらず、スタンダードは、削除されたデストラクタのこの明示的な記述を更新することができます。あなたは編集上の変更を提出することができます(私はそれが本当の提案を保証するとは思わない)。
コメントの中の@BoPerssonによると、std::bitset
は標準ライブラリの非常に古いコンポーネントです。多くの機能(符号なし整数の暗黙のコンストラクタ、非メンバではないメンバoperator==
)は、1998年に言語標準化に先行しています。恥知らずのプラグです。 this Q&Aこれがどのように発生したかについての詳細は、this Q&Aを参照してください。
<rant mode>
std::bitset
の遺産のうち最良の方法は、namespace experimental
でクリーンな休憩となります。これは、std::bitset
の混合抽象化を解決することも好ましく、同時にarray<bool>
およびset<int>
の空間最適化バージョンを試行する。理想的には、これらの抽象化を提供するbool_array<N>
とbounded_int_set<N>
の提案があります。同様に、bool_vector<Alloc>
(現在はvector<bool, Alloc>
として知られている)およびint_set<Alloc>
(現在はboost::dynamic_bitset
とboost::container::flat_set<int, Alloc>
の混合物)を定義することができます。
</rant mode>
- 1. なぜstd :: bitset :: sizeが非staticなのですか
- 2. デストラクタが呼び出されないのはなぜですか?
- 3. C標準で指定されたマクロの各部分は何ですか?
- 4. C++ std :: list :: clear()がデストラクタを呼び出さないのはなぜですか?このコードでは
- 5. C++のstd :: weak_ptrにstd :: hashが定義されていないのはなぜですか?
- 6. なぜlibstdC++が必要なのですか? C++標準ライブラリの
- 7. std :: bitset <n>コンテンツでstd :: swapが動作しないのはなぜですか?
- 8. C++標準のdeclaration-seqがこのように記述されているのはなぜですか?
- 9. std :: reverse_iterator :: operator []の戻り値の型が指定されていないのはなぜですか?
- 10. C++標準で浮動小数点数の表現に何かが指定されていますか?
- 11. C標準でスタックオーバーフローの動作が定義されていますか?
- 12. 作成されたXMLが標準に準拠していないのはなぜですか?
- 13. Android:Spinnerに標準のデザインがないのはなぜですか?
- 14. std :: dequeサブアレイのサイズが固定されているのはなぜですか?
- 15. C++標準:ODRとconstexprのはstd :: string_view
- 16. コンパイラは-std = C++ 11で起動されますが、std :: moveは未定義なのはなぜですか?
- 17. デストラクタが呼び出されるのはなぜですか?
- 18. 空の構造体はC++標準で定義されていますか?
- 19. C++はstd :: minとstd :: maxの下でstd :: optionalの動作を標準化していますか?
- 20. 標準化されていないディストリビューションでscipy normが異なるのはなぜですか?
- 21. C++の標準ライブラリにハッシュテーブルの実装が含まれていないのはなぜですか?
- 22. C標準のtime()関数はNULLパラメータを指定してもスレッドセーフですか?
- 23. なぜjQueryはW3C標準ではないのですか?
- 24. なぜデータフロープログラミングは標準ではないのですか?
- 25. CSS標準で関数が定義されていますか?
- 26. Qt Creatorで標準のC++がコンパイルされない
- 27. jqueryでmarginが指定されているのはなぜですか?
- 28. 標準がしばしば閉鎖されるのはなぜですか?
- 29. なぜjavax.servlet.http.HttpServletRequestの標準的な定義がないのですか?
- 30. c標準ライブラリでstdinはどこに定義されていますか?
誰かが1990年代にこれを書いた、と誰も以来、それを変更することを提案していませんか?他の理由はありません。 –