Вы не можете. Период. Объект, который на самом деле определен с типом данных const
, является неизменным в C ++, и компиляторы знают это и используют эти знания.
Вы не можете надеяться сделать это надежно. Даже если вам как-то удастся убедить биты в памяти действительно измениться (используя UB, такой как приведенный вами код), вы никогда не сможете быть уверены, что компилятор выдаст инструкции загрузки из этой памяти вместо кэширования результата загрузки или даже жесткого кодирования. значение, которое объект const
имел во время компиляции.
Не говоря уже о том, что такой объект (static const int
) может находиться в той части памяти, для которой ваша программа не имеет доступа для записи. ,Выполнение такого небезопасного броска, как вы пытаетесь, приведет к сбою вашей программы с нарушением прав доступа.
Вам нужно будет найти другой способ достижения вашей действительной цели.