If I have a #define statement within a namespace as such:
namespace MyNamespace { #define SOME_VALUE 0xDEADBABE }
Am I correct in saying that
The preprocessor operates (conceptually at least, and often actually too) before namespaces and other language-level concepts "kick in" -- so yes, it's definitely much better to use language-level constructs such as const values wherever you can!
const