title: Compiler error with std::map and dense_hash_map in GTEST
body: <p>I am getting this error when I try to use my project/module in my GOOGLE TESTS.</p>
  
  <pre><code>gcc.compile.c++ bin/gcc-4.8.3/debug/link-static/gmock_test.o
  In file included from /usr/include/c++/4.8.2/tr1/functional:39:0,
                   from /usr/local/include/google/dense_hash_map:106,
                   from sagarmatha/utils/include/multicast_receiver.h:11,
                   from include/transmitter/mcx_receiver.h:25,
                   from src/unit_tests_theo.cpp:7:
  /usr/include/c++/4.8.2/tr1/tuple:130:11: error: redefinition of ‘class std::tuple&lt; &lt;template-parameter-1-1&gt; &gt;’
       class tuple : public _Tuple_impl&lt;0, _Elements...&gt;
             ^
  In file included from /usr/include/c++/4.8.2/bits/stl_map.h:63:0,
                   from /usr/include/c++/4.8.2/map:61,
                   from 8k/include/Source.h:12,
                   from src/unit_tests_theo.cpp:2:
  /usr/include/c++/4.8.2/tuple:388:11: error: previous definition of ‘class std::tuple&lt; &lt;template-parameter-1-1&gt; &gt;’
       class tuple : public _Tuple_impl&lt;0, _Elements...&gt;
             ^
  In file included from /usr/include/c++/4.8.2/tr1/functional:39:0,
                   from /usr/local/include/google/dense_hash_map:106,
                   from sagarmatha/utils/include/multicast_receiver.h:11,
                   from include/transmitter/mcx_receiver.h:25,
                   from src/unit_tests_theo.cpp:7:
  /usr/include/c++/4.8.2/tr1/tuple:164:20: error: redefinition of ‘class std::tuple&lt;&gt;’
     template&lt;&gt; class tuple&lt;&gt; { };
                      ^
  In file included from /usr/include/c++/4.8.2/bits/stl_map.h:63:0,
                   from /usr/include/c++/4.8.2/map:61,
                   from 8k/include/Source.h:12,
                   from src/unit_tests_theo.cpp:2:
  /usr/include/c++/4.8.2/tuple:512:11: error: previous definition of ‘class std::tuple&lt;&gt;’
       class tuple&lt;&gt;
             ^
  In file included from /usr/include/c++/4.8.2/tr1/functional:39:0,
                   from /usr/local/include/google/dense_hash_map:106,
                   from sagarmatha/utils/include/multicast_receiver.h:11,
                   from include/transmitter/mcx_receiver.h:25,
                   from src/unit_tests_theo.cpp:7:
  /usr/include/c++/4.8.2/tr1/tuple:168:11: error: redefinition of ‘class std::tuple&lt;_T1, _T2&gt;’
       class tuple&lt;_T1, _T2&gt; : public _Tuple_impl&lt;0, _T1, _T2&gt;
             ^
  In file included from /usr/include/c++/4.8.2/bits/stl_map.h:63:0,
                   from /usr/include/c++/4.8.2/map:61,
                   from 8k/include/Source.h:12,
                   from src/unit_tests_theo.cpp:2:
  /usr/include/c++/4.8.2/tuple:521:11: error: previous definition of ‘class std::tuple&lt;_T1, _T2&gt;’
       class tuple&lt;_T1, _T2&gt; : public _Tuple_impl&lt;0, _T1, _T2&gt;
             ^
  In file included from /usr/include/c++/4.8.2/tuple:38:0,
                   from /usr/include/c++/4.8.2/bits/stl_map.h:63,
                   from /usr/include/c++/4.8.2/map:61,
                   from 8k/include/Source.h:12,
                   from src/unit_tests_theo.cpp:2:
  /usr/include/c++/4.8.2/utility:83:24: error: template parameter ‘long unsigned int _Int’
     template&lt;std::size_t _Int, class _Tp&gt;
                          ^
  In file included from /usr/include/c++/4.8.2/tr1/functional:39:0,
                   from /usr/local/include/google/dense_hash_map:106,
                   from sagarmatha/utils/include/multicast_receiver.h:11,
                   from include/transmitter/mcx_receiver.h:25,
                   from src/unit_tests_theo.cpp:7:
  /usr/include/c++/4.8.2/tr1/tuple:223:12: error: redeclared here as ‘int __i’
       struct tuple_element;
              ^
  /usr/include/c++/4.8.2/tr1/tuple:230:12: error: specialization of ‘template&lt;long unsigned int _Int, class _Tp&gt; struct std::tuple_element’ in different namespace [-fpermissive]
       struct tuple_element&lt;__i, tuple&lt;_Head, _Tail...&gt; &gt;
              ^
  In file included from /usr/include/c++/4.8.2/tuple:38:0,
                   from /usr/include/c++/4.8.2/bits/stl_map.h:63,
                   from /usr/include/c++/4.8.2/map:61,
                   from 8k/include/Source.h:12,
                   from src/unit_tests_theo.cpp:2:
  /usr/include/c++/4.8.2/utility:84:11: error:   from definition of ‘template&lt;long unsigned int _Int, class _Tp&gt; struct std::tuple_element’ [-fpermissive]
       class tuple_element;
             ^
  In file included from /usr/include/c++/4.8.2/tr1/functional:39:0,
                   from /usr/local/include/google/dense_hash_map:106,
                   from sagarmatha/utils/include/multicast_receiver.h:11,
                   from include/transmitter/mcx_receiver.h:25,
                   from src/unit_tests_theo.cpp:7:
  /usr/include/c++/4.8.2/tr1/tuple:237:12: error: redefinition of ‘struct std::tuple_element&lt;0ul, std::tuple&lt;_El0, _El ...&gt; &gt;’
       struct tuple_element&lt;0, tuple&lt;_Head, _Tail...&gt; &gt;
              ^
  In file included from /usr/include/c++/4.8.2/bits/stl_map.h:63:0,
                   from /usr/include/c++/4.8.2/map:61,
                   from 8k/include/Source.h:12,
                   from src/unit_tests_theo.cpp:2:
  /usr/include/c++/4.8.2/tuple:687:12: error: previous definition of ‘struct std::tuple_element&lt;0ul, std::tuple&lt;_El0, _El ...&gt; &gt;’
       struct tuple_element&lt;0, tuple&lt;_Head, _Tail...&gt; &gt;
              ^
  In file included from /usr/include/c++/4.8.2/tr1/functional:39:0,
                   from /usr/local/include/google/dense_hash_map:106,
                   from sagarmatha/utils/include/multicast_receiver.h:11,
                   from include/transmitter/mcx_receiver.h:25,
                   from src/unit_tests_theo.cpp:7:
  /usr/include/c++/4.8.2/tr1/tuple:248:12: error: redefinition of ‘struct std::tuple_size&lt;std::tuple&lt;_Args1 ...&gt; &gt;’
       struct tuple_size&lt;tuple&lt;_Elements...&gt; &gt;
              ^
  In file included from /usr/include/c++/4.8.2/bits/stl_map.h:63:0,
                   from /usr/include/c++/4.8.2/map:61,
                   from 8k/include/Source.h:12,
                   from src/unit_tests_theo.cpp:2:
  /usr/include/c++/4.8.2/tuple:737:12: error: previous definition of ‘struct std::tuple_size&lt;std::tuple&lt;_Args1 ...&gt; &gt;’
       struct tuple_size&lt;tuple&lt;_Elements...&gt;&gt;
              ^
  In file included from /usr/include/c++/4.8.2/tr1/functional:39:0,
                   from /usr/local/include/google/dense_hash_map:106,
                   from sagarmatha/utils/include/multicast_receiver.h:11,
                   from include/transmitter/mcx_receiver.h:25,
                   from src/unit_tests_theo.cpp:7:
  /usr/include/c++/4.8.2/tr1/tuple:254:49: error: definition of ‘std::tuple_size&lt;std::tuple&lt;_Args1 ...&gt; &gt;::value’ is not in namespace enclosing ‘std::tuple_size&lt;std::tuple&lt;_Args1 ...&gt; &gt;’ [-fpermissive]
       const int tuple_size&lt;tuple&lt;_Elements...&gt; &gt;::value;
  </code></pre>
  
  <p>Is it related to <code>map and dense_hash_map</code> usage together ? Please help? </p>