C++メモリが確保できないときの処理 Windows

メモリが確保できないときのデフォルトの処理

malloc

NULLを返す

new

std::bad_alloc例外を投げる。

_set_new_handler

_set_new_handlerを使うと、newでメモリが確保できなかったとき呼ばれる関数(ハンドラ)を指定できる。この関数はガーベージコレクションとして使われることが想定されていて、0以外を戻すと再度メモリ確保が試みされて失敗すればまたハンドラが呼ばれる。0を返すと失敗で、std::bad_alloc例外が投げられる。

上記ソースでは試していないが、_set_new_mode(1)を呼べば、mallocのときでも同様の処理ができるようだ。

ソースコード

git rev-parse

gitのrev-parseコマンドは外部的な表現のコマンドを内部的な表現に変換する。例えばHEADなどをSHA1のハッシュ文字列に変換する。

git rev-parse –abbrev-ref=strict HEAD