title: Problems using boost multiprecision library
body: <p>I am trying to write a base conversion program that will work for numbers beyond the limits of C++'s long long integers. I am trying to use boost multiprecision libraries but have not made it very far.</p>
  
  <p>I have tried to compile the following:</p>
  
  <pre><code>#include &lt;boost/multiprecision/gmp.hpp&gt;
  #include &lt;iostream&gt;
  #include &lt;string&gt;
  #include &lt;stdio.h&gt;
  
  namespace boost{ namespace multiprecision{
  
  class gmp_int;
  
  typedef number&lt;gmp_int &gt;         mpz_int;
  
  }} // namespaces
   using namespace boost::multiprecision;
  int main(int argc, const char * argv[]) {
  mpz_int seed = 18446744073709551615;
  
   std::cout &lt;&lt; seed;
    return 0;
  }
  </code></pre>
  
  <p>and received the following errors:</p>
  
  <pre><code>    main.cpp:17:20: error: reference to 'gmp_int' is ambiguous
  typedef number&lt;gmp_int &gt;         mpz_int;
                 ^
  
  
  main.cpp:15:11: note: candidate found by name lookup is
    'boost::multiprecision::gmp_int'
  class gmp_int;
        ^
  
  /usr/local/boost_1_57_0/boost/multiprecision/gmp.hpp:2157:40: note:      candidate
    found by name lookup is 'boost::multiprecision::gmp_int'
  using boost::multiprecision::backends::gmp_int;
                                     ^
  
  main.cpp:17:20: error: reference to 'gmp_int' is ambiguous
  typedef number&lt;gmp_int &gt;         mpz_int;
                 ^
  
  main.cpp:15:11: note: candidate found by name lookup is
    'boost::multiprecision::gmp_int'
  class gmp_int;
        ^
  
   /usr/local/boost_1_57_0/boost/multiprecision/gmp.hpp:2157:40: note: candidate
    found by name lookup is 'boost::multiprecision::gmp_int'
  using boost::multiprecision::backends::gmp_int;
                                     ^
  
  main.cpp:17:38: error: typedef redefinition with different types ('number&lt;class
    boost::multiprecision::gmp_int&gt;' vs 'number&lt;struct
    boost::multiprecision::backends::gmp_int&gt;')
  typedef number&lt;gmp_int &gt;         mpz_int;
                                   ^
  
  /usr/local/boost_1_57_0/boost/multiprecision/gmp.hpp:2214:34: note: previous
    definition is here
  typedef number&lt;gmp_int &gt;         mpz_int;
                               ^
  
  main.cpp:22:2: error: reference to 'gmp_int' is ambiguous
   gmp_int seed = 18446744073709551615;
   ^
  
  /usr/local/boost_1_57_0/boost/multiprecision/gmp.hpp:2157:40: note: candidate
    found by name lookup is 'boost::multiprecision::gmp_int'
  using boost::multiprecision::backends::gmp_int;
                                     ^
  
  main.cpp:15:11: note: candidate found by name lookup is
      'boost::multiprecision::gmp_int'
  class gmp_int;
        ^
  </code></pre>
  
  <p>main.cpp:32:18: error: use of undeclared identifier 'seed'
      std::cout &lt;&lt; seed;
                   ^
       5 errors generated.</p>
  
  <p>I know I must be making some pretty basic mistakes but I haven't had any success in fixing them. any help would be appreciated.</p>
  
  <p>I got a simple program to work using <code>#include &lt;boost/lambda/lambda.hpp&gt;</code>, so I am fairly certain that boost is installed correctly.</p>