c++11 ドラフトのリビジョン N3242 を読むと、標準ライブラリのインターフェイスの一部のコンポーネント (特にスレッド化とロック) が例外処理に依存しているようです。
私は例外を無効にして多くの作業を行っているため、例外処理を有効にしないと (実際的または論理的に) 使用できないライブラリ コンポーネント/機能はどれでしょうか?
c++11 ドラフトのリビジョン N3242 を読むと、標準ライブラリのインターフェイスの一部のコンポーネント (特にスレッド化とロック) が例外処理に依存しているようです。
私は例外を無効にして多くの作業を行っているため、例外処理を有効にしないと (実際的または論理的に) 使用できないライブラリ コンポーネント/機能はどれでしょうか?
まず最初に (念のため)、例外の無効化と RTTI は、標準では考慮されていないコンパイラ固有の拡張機能です。
標準ライブラリは通常、コンパイラに関連付けられているため、標準ライブラリの実装は、これに対処するように特別に設計されている可能性があります (特に、 を発生させる代わりに null ポインターを返すことに対処するように設計されている可能性があります)。new
std::bad_alloc
したがって、あなたが求めるものは無意味です。完全なリストについては、独自のライブラリのドキュメントを確認してください。
そうは言っても、標準では、多くの操作がスローされないことが保証されています。例外を飲み込む操作については知りませんが、それらのほとんどは実際にそのまま使用しても安全だと思います。
たとえば、すべてのアルゴリズムは安全でなければなりません。
それでも、繰り返しになりますが、実装のドキュメントを読むことだけをお勧めします。
この質問は 1 か月以上前のもので、回答がありません。
コミュニティ wiki と見なすことができる回答を提供しています。必要に応じて追加してください。
std::thread
セクション 30.2.2。推移的。ネイティブ実装を使用して実装された抽象化。
std::mutex
, std::recursive_mutex
, std::timed_mutex
, std::recursive_timed_mutex
. セクション 30.4.1、独自の例外フリー ロックを ( 、 、 経由で) 提供した場合は非推移BasicLockable
的。ネイティブ実装を使用して実装された抽象化。Lockable
TimedLockable
std::condition_variable
セクション 30.5。推移的。ネイティブ実装を使用して実装された抽象化。
注:もっとあります。