This was committed previously as 4975ae172 and reverted, because the flags were applied even if the checks didn’t pass. This is the same commit, fixed up to actually disable the functionality when necessary.
Enabled automatically if boost >= 1.49. See: https://svn.boost.org/trac/boost/ticket/2309
Also, check for a default visibility attribute, so that we can mark future api functions correctly.