title: Why is g++ not able to compile tuples?
body: <pre><code>#include &lt;iostream&gt;
  #include &lt;tuple&gt;
  #include &lt;string&gt;
  using namespace std;
  
  int main(){
    tuple&lt;string, string, string&gt; x;
    x = make_tuple("hi", "a", "b");
    cout &lt;&lt; get&lt;0&gt;(x) &lt;&lt; endl &lt;&lt; endl;
  
  }
  </code></pre>
  
  <p>I've been having difficulties with my program, so I wrote a simpler one and even this does not work. I do not understand why there is a problem after reviewing the documentation several times. It also compiles fine on XCode but for some reason breaks down on g++.</p>
  
  <p>Here is the full error message:</p>
  
  <blockquote>
    <p>test.cpp:6:3: error: use of undeclared identifier 'tuple'</p>
    
    <p>tuple x;</p>
    
    <p>^</p>
    
    <p>test.cpp:6:9: error: unexpected type name 'string': expected
    expression</p>
    
    <p>tuple x;</p>
  
  <pre><code>    ^
  </code></pre>
    
    <p>test.cpp:7:3: error: use of undeclared identifier 'x'</p>
    
    <p>x = make_tuple("hi", "a", "b");</p>
    
    <p>^</p>
    
    <p>test.cpp:7:7: error: use of undeclared identifier 'make_tuple'</p>
    
    <p>x = make_tuple("hi", "a", "b");</p>
  
  <pre><code>  ^
  </code></pre>
    
    <p>test.cpp:8:11: error: reference to overloaded function could not be
    resolved; did you mean to call it?   cout &lt;&lt; get&lt;0>x &lt;&lt; endl &lt;&lt; endl;</p>
  </blockquote>
  
  <p>The command I am using is g++ test.cpp</p>