I'd suggest having a version(warnings_suck) { static assert(0); } so people who want more info can just stick a -version= on the build and get the compiler's help. static assert(0) gives a kind of compile time stack trace.