std::set_new_handler
提供:cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Defined in header <new>
|
||
| std::new_handler set_new_handler(std::new_handler new_p) |
||
new_p新しいグローバル新ハンドラ関数になり、以前にインストールされた新しいハンドラを返します。.Original:
Makes
new_p the new global new-handler function and returns the previously installed new-handler.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
目次 |
[編集] ノート
で呼び出される関数です。本来の目的は次の3つのいずれかになりますOriginal:
The new-handler function is the function called by
割り当て関数</div> whenever a memory allocation attempt fails. Its intended purpose is one of three things:
Original:
allocation functions
The text has been machine-translated via [http://translate.google.com Google Translate].
You can help to correct and verify the translation. Click [http://en.cppreference.com/w/Cppreference:MachineTranslations here] for instructions.
You can help to correct and verify the translation. Click [http://en.cppreference.com/w/Cppreference:MachineTranslations here] for instructions.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
より多くのメモリを利用できるようにします
2) Original:
make more memory available
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
プログラムを終了する(例えば呼び出しstd::terminateによる)
3) Original:
terminate the program (e.g. by calling std::terminate)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
タイプstd::bad_allocの例外をスローしたりstd::bad_alloc由来
Original:
throw exception of type std::bad_alloc or derived from std::bad_alloc
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
新ハンドラがリターンした場合、割り当て関数は、以前に割り当てに失敗した試行を繰り返し、割り当てが再び失敗した場合は新しいハンドラ再び呼び出します。ループを終了するには、新しいハンドラーとはstd::set_new_handler(nullptr)を呼び出すことができます:割り当てに失敗した試行後、割り当て関数はstd::get_new_handlerがnullポインタ値を返すことを見つけ、もし、それがstd::bad_allocがスローされます.
Original:
If new-handler returns, the allocation function repeats the previously-failed allocation attempt and calls the new-handler again if the allocation fails again. To end the loop, new-handler may call std::set_new_handler(nullptr): if, after a failed allocation attempt, allocation function finds that std::get_new_handler returns a null pointer value, it will throw std::bad_alloc.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
プログラムの起動時に、新ハンドラがnullポインタです.
Original:
At program startup, new-handler is a null pointer.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[編集] パラメータ
| new_p | - | タイプstd::new_handler、またはNULLポインタの関数へのポインタ
Original: pointer to function of type std::new_handler, or null pointer The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[編集] 値を返します
以前にインストールされた新しいハンドラ、またはどれもインストールされていない場合は、nullポインタ値.
Original:
The previously-installed new handler, or a null pointer value if none was installed.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[編集] 例外
[編集] 例
#include <iostream> #include <new> void handler() { std::cout << "Memory allocation failed, terminating\n"; std::set_new_handler(nullptr); } int main() { std::set_new_handler(handler); try { while(true) new int[100000000ul]; }catch(const std::bad_alloc& e) { std::cout << e.what() << '\n'; } }
Output:
Memory allocation failed, terminating std::bad_alloc
[編集] も参照してください
| 割り当て関数 Original: allocation functions The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (機能) | |
| set_new_handler |
新しいハンドラを登録します Original: registers a new handler The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (機能) |
| 新しいハンドラの関数ポインタ型 Original: function pointer type of the new handler The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (typedefです) | |
| メモリ割り当てが失敗したときに例外がスローされます Original: exception thrown when memory allocation fails The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (クラス) | |