Вообще это плохая идея. По иронии судьбы, учитывая, что у вас есть «Google» в именах ваших символов, вам может быть любопытно узнать, что Google C ++ Style Guide настоятельно рекомендует не определять неопределенные макросы перед их определением. По сути, если вы определите макрос несколько раз, вы получите ошибку. Undef предотвращает эти ошибки, которые могут подавить некоторые сигналы тревоги, которые, вероятно, должны сработать. Есть несколько случаев, когда undef имеет смысл, например, при определении assert
, где поведение макроса может отличаться каждый раз, когда вы включаете заголовок (в зависимости от того, определен ли какой-либо другой макрос). Однако если макрос должен иметь одно значение для всей программы, это undef не имеет никакого смысла.