Faramir on the Ars forums makes an excellent point: "With the c preprocessor, both theoretically and as it is used in practice, you can easily get dead code in certain compile paths that is live in others." I think template mixins can achieve the same sort of shenanigans. I think warning it is.