問題タブ [nothrow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
9 に答える
9528 参照

c++ - std :: nothrowはいつ使用する必要がありますか?

の理想的な使用法はstd::nothrow何ですか?

0 投票する
3 に答える
2643 参照

c++ - nothrow オプションを指定した演算子 new は引き続き例外をスローします

そのようなコードがあります:

ただし、このプログラムはまだ std::bac_alloc 例外をスローしますが、 new は std::nothrow パラメータで呼び出されます。このプログラムは Visual C++ 2010 でコンパイルされています。例外がスローされるのはなぜですか?

編集:

mingw の Windows で g++ を使用すると、すべて正常に動作します。

0 投票する
2 に答える
2706 参照

c++ - 標準ヘッダー ファイルでの std::nothrow と std::new_handler の使用は何ですか

小さな標準ヘッダー ファイルに出会いました<new>。おそらくこれまでに直接使用したことはありません。興味のある方はg++版をどうぞ

以下の部分は私の興味です:

  1. プログラマはどのようstruct nothrow_tにオブジェクトnothrowを使用しますか? オブジェクトは本当に必要externですか?
  2. はいつnew_handler使用されますか?
  3. すべてがblockoperator new/deleteで宣言されているのはなぜですか?extern C++
0 投票する
3 に答える
815 参照

c++ - C++ : メモリ不足の場合は何を返すべきですか?

以下のようにコーディングすると、「null」が返され、例外は発生しませんでした。

new 演算子で「nothrow」引数を使用しないのはどうですか? 「null」も返しますか?もしそうなら、なぜ「nothrow」引数の使用が推奨されるのですか?

御時間ありがとうございます。

0 投票する
3 に答える
2930 参照

c++ - std :: stringのデフォルトのコンストラクターはスローされませんか?

std ::strings;ができます。どんな状況でも投げますか?これは規格によって規制されていますか(違いがある場合は、C ++ 03に関心があります)?

0 投票する
2 に答える
131 参照

d - D で文字列を構築する好ましい方法

関数の属性@safepureおよびnothrow親関数のコンパイル時と実行時のパフォーマンスに関して、文字列を構築するための推奨される方法は何ですか?

たとえば、どちらを使用する必要がありますか

また

formatバージョンの方が見やすいと思いますが、他の点では優れていますか?

フォーマット文字列とその引数を CTFE する必要があるため、コンパイル時にわずかなパフォーマンス ヒットが発生する可能性があります。

0 投票する
1 に答える
483 参照

c++ - (std::no throw) 割り当てが失敗するとクラッシュする

次のようなカスタムメモリアロケータを作成しました

標準では例外をスローしてはならないと言われているため、割り当てが成功したかどうかを確認しません。今、allocator オブジェクトをモックして、malloc 関数呼び出しが NULL を返すようにしています。私はこの演算子を次のように使用しています:

ここでクラッシュし、gdb の bt は次のように表示されます。このポインタは突然 0x0 になります。誰でも私を説明できますか..!この場合、コードでこの状況をどのように処理できますか。

0 投票する
4 に答える
2337 参照

c++ - プレースメントの新規および例外

「placement new」演算子は次のように宣言されます。

ただし、実際の割り当ては含まれないため、不適切な割り当て例外は排除されますが、ポインターが不適切な場所を指している可能性は依然としてあります。その場合、範囲またはオーバー/アンダーフロー エラーが発生することが予想されますが、発生しません。noexcept代わりに単に実行を終了するように宣言されたという事実は?

また、これは、C++ 11 配置の前に new が直接クラッシュするstd::unexpectedのではなく、スローして処理しようとすることを意味しますか?std::set_unexpected

「念のため」配置の新しいオーバーロードをスローするべきではありませんか?