::operator new 関数の使用

ISO C++ 標準に従い、::operator new(std::size_t) では、メモリ割り当てに失敗したときに、シグナルを発生させるのではなく、例外をスローします。例外がキャッチされなかった場合は、std::terminate() が呼び出されます。

コンパイラオプション --force_new_nothrow を指定すると、コンパイル時にすべての new 呼び出しが ::operator new(std::size_t, std::nothrow_t&) または :operator new[](std::size_t, std::nothrow_t&) への呼び出しに変換されます。ただし、ライブラリ内の operator new 呼び出しおよびクラス固有の operator new 呼び出しは変換されません。詳細については、--force_new_nothrow、--no_force_new_nothrowを参照して下さい。

Show/hide従来のサポート

RVCT v2.0 では、::operator new 関数でメモリ不足が発生すると、C++ 例外をスローするのではなく、シグナル SIGOUTOFHEAP が発生しました。ARM® C および C++ ライブラリと浮動小数点サポートの使用』C ライブラリの signal() 関数と追加の型引数によりサポートされる ISO 準拠のシグナルの実装(2-119 ページ)を参照して下さい。

最新リリースでは、new_handler をインストールしてシグナルを発生させ、RVCT v2.0 と同じ動作にすることができます。

Note

この動作の実装方法は今後のリリースで変更される可能性があるため、このような動作に依存しないようにして下さい。

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0491EJ
Non-ConfidentialID081711