title: Test whether libstdc++'s version uses a C++11-compliant std::string
body: <p>I'm writing some C++11 code that makes assumptions about the nature of <code>std::string</code> that are valid, but represent behavior that was changed in C++11. In the earlier days, libstdc++'s <code>basic_string</code> implementation conformed to the 98/03 requirements, but not to the more strict C++11 requirements.</p>
  
  <p>As I understand it, libstdc++ has fixed the issues around <code>basic_string</code>. The problem is that there are many versions of the library that people use which do not implement this fix. And my code may silently fail in many unpleasant ways on them.</p>
  
  <p>I would like to have a <code>static_assert</code> fire if the user attempts to compile my library against those non-conformant versions of libstdc++. How do I detect the version, and equally importantly, which version should I look for?</p>