C ++の想定される精神は、「使用するもの、支払うもの」です。ただし、これは、STLでの例外とその普及により、非常に衰弱させる可能性があります。
誰かが「例外をオンにするだけ」と言う前に、私たちが住まなければならないプログラミング環境では人生はそれほど寛大ではありません。私のものは、実行環境がスタックをほどくのに十分なC++ランタイムを提供しないカーネルプログラミングです。
STLコンテナは、基盤となるバッキングストアにストレージを再割り当てできない場合、割り当て失敗の例外をスローします。環境で例外が有効になっていない場合、プログラムはかなり不思議なことにクラッシュします。実装がまっすぐに中止されるのを見たことがあるか、割り当てが機能しなかったとしても機能すると想定しています。
私が遭遇した多くのCADTライブラリは、エラーコードを返すか、出力パラメータとしてエラーを使用することで、この問題に事前に対処しています。
この問題に対処するための「最良の」C++の方法は何ですか?
明確にするために
標準ライブラリは使いたくない、使えない。私は「できないことをどうやってやるのか」とは問いません。私は尋ねています:「きれいな状態で、コンテナライブラリをどのように構築する必要がありますか?」