Choosing C++ RAII wrappers because there's at least one case where ZUN misplaced a manual grcg_off(). This implementation combines safety with the optimal instructions for both dynamic and static use cases. Part of P0232, funded by [Anonymous].