Я недавно начал заменять статические ключевые слова анонимными пространствами имен в моем коде, но сразу столкнулся с проблемой, где переменные в пространстве имен больше не были доступны для контроля в моем отладчике. Я использовал VC60, таким образом, я не знаю, является ли это надуманным вопросом с другими отладчиками. Мое обходное решение должно было определить пространство имен 'модуля', где я дал ему название своего cpp файла.
, Например, в моем файле XmlUtil.cpp, я определяю пространство имен XmlUtil_I {...} Для всех моих переменных модуля и функций. Тем путем я могу применить XmlUtil_I:: квалификация в отладчике для доступа к переменным. В этом случае '_I' отличает его от общедоступного пространства имен, такого как XmlUtil, который я могу хотеть использовать в другом месте.
я предполагаю, что потенциальный недостаток этого подхода по сравнению с действительно анонимным - то, что кто-то мог нарушить желаемый статический контекст при помощи спецификатора пространства имен в других модулях. Я не знаю, является ли это главным беспокойством все же.
Зависит от того, что вы регистрируете. Если что-то нужно регистрировать каждую секунду, то, возможно, вам следует еще раз просмотреть то, что вы регистрируете.
Вы можете хэшировать похожие сообщения и распечатать их через некоторое время.