8
noexceptを実際に使用する必要があるのはいつですか?
noexceptキーワードが適切に多くの関数のシグネチャに適用することができますが、私は実際にそれを使用することを検討すべきときになどわからないと思います。これまでに読んだ内容に基づくと、のぎりぎりの追加はnoexcept、ムーブコンストラクターがスローするときに発生するいくつかの重要な問題に対処しているようです。ただし、noexceptそもそも詳細について読むためのいくつかの実際的な質問に対しては、まだ満足のいく答えを提供することはできません。 私がスローしないとわかっている関数の例はたくさんありますが、コンパイラーがそれ自体で決定することはできません。このような場合noexceptはすべて関数宣言に追加する必要がありますか? すべての関数宣言のnoexcept後に追加する必要があるかどうかを考える必要があると、プログラマーの生産性が大幅に低下します(率直に言って、お尻の痛みになります)。どのような状況での使用についてより注意する必要がありますか。また、どのような状況で暗黙の状況を回避できますか?noexceptnoexcept(false) 使用後にパフォーマンスの改善が見られるのはいつ現実的に期待できnoexceptますか?特に、C ++コンパイラーがを追加した後でより優れたマシンコードを生成できるコードの例を示しますnoexcept。 個人的には、noexcept特定の種類の最適化を安全に適用するためにコンパイラーに提供される自由の増加のために気にしています。最近のコンパイラnoexceptはこのように利用していますか?そうでない場合、近いうちにそうすることを期待できますか?