オペレーターへの呼び出しdelete
が同期的かどうか疑問に思っていました。言い換えれば、もしそうなら:
delete p;
C++ 標準は、この呼び出しが実行を終了した後にのみメモリが解放されることを保証しますか? それとも、呼び出しは非同期で、OS がメモリを解放するのに最適な時期であると判断したらすぐにタスクをスケジュールして、このメモリを解放するだけですか?
最初のケースが有効な場合、独自の非同期削除機能を実装する必要があるということですか? ほとんどの場合、私たち (プログラマー) はメモリがいつ正確に解放されるかを気にしないため、コードがフリーズしてこれを待つ必要はありません (おそらく費用がかかりますか?)。終了するシステム コールではなく、削除するタスクをスケジュールし、すぐに実行を続行します。C++ は、車輪を再発明せずにこれを行うための標準機能を (おそらく標準ライブラリを介して) 提供していますか?