title: Which gcc version is needed to use unordered_map from C++11?
body: <p>I am currently on RHEL 5.4 with gcc 4.1 installed, but I want to use <code>unordered_map</code>. As I found out, this is only introduced in C++11 to the standard, and therefore not available. One alternative would be using <code>__gnu_cxx::hash_map</code>, but I would prefer using standards.</p>
  
  <p>On another development host I happend to have RHEL 6.4 and gcc 4.4, which knows <code>unordered_map</code>, but gives the following warning:</p>
  
  <blockquote>
    <p>../include/c++/4.4.7/c++0x_warning.h:31:2: error: #error This file requires compiler and library support for the upcoming ISO C++ standard, C++0x. This support is currently experimental, and must be enabled with the -std=c++0x or -std=gnu++0x compiler options.</p>
  </blockquote>
  
  <p>From the gcc <a href="https://gcc.gnu.org/projects/cxx0x.html" rel="nofollow noreferrer">homepage</a> I can't seem to find out which gcc version supports <code>unordered_map</code>.</p>
  
  <p>[edit]
  To clarify my question:
  I am stuck to several operating systems and their versions by customer requirements, therefore I cannot always update to the latest GCC version and be happy. I need to maintain compatibility of my software across all platforms.</p>
  
  <p>I am therefore searching for the minimum GCC version required to use <code>unordered_map</code>. I am aware of the fact that supplying <code>-std=c++0x</code> to GCC fixes the error above, but I dont know how far the "experimental" warning means <strong><em>I should not be using</em></strong> <code>unordered_map</code>.</p>
  
  <p>Some guys in <a href="https://stackoverflow.com/questions/19277122/g-unordered-map-has-no-at-function?rq=1">this thread</a> strongly advise <strong>not to use</strong> this experimental C++11 implementation</p>
  
  <p>... so what should I do? </p>