title: GMP constructor not recognized by compiler?
body: <pre><code>#include &lt;stdio.h&gt;
  #include &lt;iostream&gt;
  #include &lt;fstream&gt;
  #include &lt;gmp.h&gt;
  
  int main(int argc, char **argv)
  {
      std::string input_name = argv[1];
      std::ifstream input;
      input.open(input_name.c_str());
  
      std::string line;
      while (input &gt;&gt; line)
      {
          std::cout &lt;&lt; line &lt;&lt; std::endl;
          mpz_t test(line, 16);
      }
  
      input.close();
      return 0;
  }
  </code></pre>
  
  <p>When I try to compile this piece of code, I get the following error:</p>
  
  <pre><code>error: expression list treated as compound expression in initializer [-fpermissive]
           mpz_t test(line, 16);
                              ^
  warning: left operand of comma operator has no effect [-Wunused-value]
  error: array must be initialized with a brace-enclosed initializer
  warning: unused variable 'test' [-Wunused-variable]
           mpz_t test(line, 16);
                 ^
  </code></pre>
  
  <p>What could be wrong? I use the <code>-lgmp</code> linker option and functions I tried (i.e. <code>mpz_init</code> are recognized without a problem).</p>