C++ macros can't read a configuration file to generate code (at least I don't want to know that they can!). And Cog works in any text file, so it can be used for languages (like HTML) that don't have macros.
They kind of can, via #include, but the configuration file has to be in a particular format and you're limited in what you can do with it.
Go doesn't, and I know that some people have suggested using code generation in lieu of generics.
it doesn't have macros, but it does have code generation.