
I did a first cut at adding information to the wiki https://svn.boost.org/trac/boost/wiki/Guidelines/WarningsGuidelines for the changes in GCC that let you suppress warnings locally. It's probably not useful to you, since it's only in gcc version 4.x and the ability to push and pop the current state is very recent, in 4.6. Nevertheless it needed documenting. There's a change to the behavior of #pragma GCC system_header as well. It previously had to be at file scope, and now can be anywhere in the file and affects from that point forward. The new pragma: #pragma GCC diagnostic <ignored|warning|error> "-WASPECIFICWARNINGOPTION" used like: #pragma GCC diagnostic ignored "-Wdeprecated-declarations". Prior to 4.6 this also had to be at file scope. As of 4.6 it can be at any line. With both it affects from that point forward. #pragma GCC diagnostic <push|pop> These two just showed up at 4.6 and can be at any line. Without them, the previous pragma is not that useful because if you affect the users flags they will not like you! lol! With them you can do what you really want: #pragma GCC diagnostic push #pragma GCC diagnostic "-Wunitialized" // your code here #pragma GCC diagnostic pop 4.6 is the current development trunk, so consider this a heads up. I'm trying to get from the gcc guys a good description of what preprocessor checks can be done to determine what's available when. When I get it, I'll add it to the wiki. Of course, almost all of the time warnings represent real issues and it's better to change your code to get rid of the warning and make it more correct, than to change your code to have ugly pragmas that suppress the warning. Patrick