組み込みプログラミングでは、コードのアトミック セクション (クリティカル セクションと呼ばれる) を作成する必要があります。これらは通常、次のようにマクロを介して実装されます。
#define ENTER_CRITICAL() int saved_status_ = CPU_STATUS_REGISTER; __disable_irq();
#define EXIT_CRITICAL() CPU_STATUS_REGISTER = saved_status_
つまり、割り込みのステータス(有効または無効)に入ると保存されます。終了時 - 復元されます。問題は、これには追加の変数が必要なことです。
私の質問は、constexpr 関数を介してクリティカル セクションを作成することは可能ですか (そして、これまでになくマクロを削除することは可能ですか)?