title: How to define '_LIBCPP_VERSION'?
body: <p>I find some library including codes below:</p>
  
  <pre><code>#if defined(_LIBCPP_VERSION) || (_MSC_VER &gt;= 1700)
  
  #define MSGPACK_HAS_STD_UNOURDERED_MAP
  #include &lt;unordered_map&gt;
  #define MSGPACK_STD_TR1 std
  
  #else   // defined(_LIBCPP_VERSION) || (_MSC_VER &gt;= 1700)
  
  #if __GNUC__ &gt;= 4
  
  #define MSGPACK_HAS_STD_TR1_UNOURDERED_MAP
  
  #include &lt;tr1/unordered_map&gt;
  #define MSGPACK_STD_TR1 std::tr1
  
  #endif // __GNUC__ &gt;= 4
  
  #endif  // defined(_LIBCPP_VERSION) || (_MSC_VER &gt;= 1700)
  </code></pre>
  
  <p>I wonder how/where to define <code>_LIBCPP_VERSION</code> and <code>_MSC_VER</code>, does it auto detect in using default g++? </p>
  
  <p>What if I want to use g++-4.7.2?</p>