Ни std :: mutex, ни boost :: mutex не предоставляют функциональные возможности мьютексов Win32, которые необходимы для этой работы, а именно системные глобальные именованные мьютексы, поэтому нет, вы не можете использовать ни один из них.
Самый простой и переносимый способ - это, вероятно, просто создать файл блокировки (вы можете записать в него PID, а затем проверить, существует ли еще процесс, чтобы избежать блокировки программы после аварийного завершения). Тем не менее, вам все еще может понадобиться некоторый код для конкретной платформы.