How to compile boost 1.56 multiprecision on AIX 6.1 w/o C++11
<p>I wanted to compile the multiprecision boost lib in AIX 6.1.
The compiler does not support the latest C++ well, so I defined some macros to use the old syntax.</p>

<pre><code>#include &lt;boost/optional.hpp&gt;

#define __IBMCPP_TR1__ 1
#define BOOST_NO_CXX11_RVALUE_REFERENCES 1
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES 1
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS 1
#define BOOST_NO_CXX11_CONSTEXPR 1
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS 1
#define BOOST_NO_CXX11_HDR_ARRAY 1

#include &lt;boost/multiprecision/cpp_int.hpp&gt;
#include &lt;boost/multiprecision/cpp_dec_float.hpp&gt;

int* foo(double *xarr) {
    using boost::multiprecision::cpp_int;

    cpp_int i, j, k;
    j = i + k;

    using boost::multiprecision::cpp_dec_float;
    typedef boost::multiprecision::number&lt;cpp_dec_float&lt;53&gt; &gt; 
        cpp_bin_float_53;

    cpp_bin_float_53 a, b, c;
    a = b + c;
    return NULL;
}
</code></pre>

<p>Eventually I got an error in the following. It mainly complains that it cannot find a definition of != between std::reverse_iterator. Does it mean I should turn off more C++ syntax by using some macros? Thank you,</p>

<pre><code>"../../../../../../include/boost/integer_traits.hpp", line 83.56: 1540-0724 (W) The non-type template argument "-1" of type "T" has wrapped.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.23: 1540-0218 (S) The call does not match any parameter list for "operator!=".
"../../../../../../include/boost/multiprecision/detail/number_compare.hpp", line 145.13: 1540-1283 (I) "template &lt;class Backend, expression_template_option ExpressionTemplates&gt; boost::multiprecision::operator!=(const number&lt;Backend,ExpressionTemplates&gt; &amp;, const number&lt;Backend,ExpressionTemplates&gt; &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.10: 1540-0288 (I) The function template parameter of type "const number&lt;Backend,ExpressionTemplates&gt; &amp;" cannot be initialized with an argument of type "const std::reverse_iterator&lt;std::_Ptrit&lt;char,long,const char *,const char &amp;,char *,char &amp;&gt; &gt;".
"../../../../../../include/boost/multiprecision/detail/number_compare.hpp", line 152.4: 1540-1283 (I) "template &lt;class Backend, expression_template_option ExpressionTemplates, class Arithmetic&gt; boost::multiprecision::operator!=(const number&lt;Backend,ExpressionTemplates&gt; &amp;, const Arithmetic &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.10: 1540-0288 (I) The function template parameter of type "const number&lt;Backend,ExpressionTemplates&gt; &amp;" cannot be initialized with an argument of type "const std::reverse_iterator&lt;std::_Ptrit&lt;char,long,const char *,const char &amp;,char *,char &amp;&gt; &gt;".
"../../../../../../include/boost/multiprecision/detail/number_compare.hpp", line 159.4: 1540-1283 (I) "template &lt;class Arithmetic, class Backend, expression_template_option ExpressionTemplates&gt; boost::multiprecision::operator!=(const Arithmetic &amp;, const number&lt;Backend,ExpressionTemplates&gt; &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.36: 1540-0288 (I) The function template parameter of type "const number&lt;Backend,ExpressionTemplates&gt; &amp;" cannot be initialized with an argument of type "std::reverse_iterator&lt;std::_Ptrit&lt;char,long,char *,char &amp;,char *,char &amp;&gt; &gt;".
"../../../../../../include/boost/multiprecision/detail/number_compare.hpp", line 166.4: 1540-1283 (I) "template &lt;class Arithmetic, class Tag, class A1, class A2, class A3, class A4&gt; boost::multiprecision::operator!=(const Arithmetic &amp;, const expression&lt;Tag,A1,A2,A3,A4&gt; &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.36: 1540-0288 (I) The function template parameter of type "const expression&lt;Tag,A1,A2,A3,A4&gt; &amp;" cannot be initialized with an argument of type "std::reverse_iterator&lt;std::_Ptrit&lt;char,long,char *,char &amp;,char *,char &amp;&gt; &gt;".
"../../../../../../include/boost/multiprecision/detail/number_compare.hpp", line 175.4: 1540-1283 (I) "template &lt;class Tag, class A1, class A2, class A3, class A4, class Arithmetic&gt; boost::multiprecision::operator!=(const expression&lt;Tag,A1,A2,A3,A4&gt; &amp;, const Arithmetic &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.10: 1540-0288 (I) The function template parameter of type "const expression&lt;Tag,A1,A2,A3,A4&gt; &amp;" cannot be initialized with an argument of type "const std::reverse_iterator&lt;std::_Ptrit&lt;char,long,const char *,const char &amp;,char *,char &amp;&gt; &gt;".
"../../../../../../include/boost/multiprecision/detail/number_compare.hpp", line 184.4: 1540-1283 (I) "template &lt;class Tag, class A1, class A2, class A3, class A4, class Tagb, class A1b, class A2b, class A3b, class A4b&gt; boost::multiprecision::operator!=(const expression&lt;Tag,A1,A2,A3,A4&gt; &amp;, const expression&lt;Tagb,A1b,A2b,A3b,A4b&gt; &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.10: 1540-0288 (I) The function template parameter of type "const expression&lt;Tag,A1,A2,A3,A4&gt; &amp;" cannot be initialized with an argument of type "const std::reverse_iterator&lt;std::_Ptrit&lt;char,long,const char *,const char &amp;,char *,char &amp;&gt; &gt;".
"/usr/vacpp/include/utility", line 90.14: 1540-1283 (I) "template &lt;class _T1, class _T2&gt; std::operator!=(const pair&lt;_T1,_T2&gt; &amp;, const pair&lt;_T1,_T2&gt; &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.10: 1540-0288 (I) The function template parameter of type "const pair&lt;_T1,_T2&gt; &amp;" cannot be initialized with an argument of type "const std::reverse_iterator&lt;std::_Ptrit&lt;char,long,const char *,const char &amp;,char *,char &amp;&gt; &gt;".
"/usr/vacpp/include/xutility", line 321.14: 1540-1283 (I) "template &lt;class _Ty, class _D, class _Pt, class _Rt, class _Pt2, class _Rt2&gt; std::operator!=(const _Ptrit&lt;_Ty,_D,_Pt,_Rt,_Pt,_Rt&gt; &amp;, const _Ptrit&lt;_Ty,_D,_Pt2,_Rt2,_Pt,_Rt&gt; &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.10: 1540-0288 (I) The function template parameter of type "const _Ptrit&lt;_Ty,_D,_Pt,_Rt,_Pt,_Rt&gt; &amp;" cannot be initialized with an argument of type "const std::reverse_iterator&lt;std::_Ptrit&lt;char,long,const char *,const char &amp;,char *,char &amp;&gt; &gt;".
"/usr/vacpp/include/xutility", line 468.14: 1540-1283 (I) "template &lt;class _RI&gt; std::operator!=(const reverse_iterator&lt;_RI&gt; &amp;, const reverse_iterator&lt;_RI&gt; &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.23: 1540-0290 (I) The function template parameter "_RI" has been found to have two values: "std::_Ptrit&lt;char,long,const char *,const char &amp;,char *,char &amp;&gt;" and "std::_Ptrit&lt;char,long,char *,char &amp;,char *,char &amp;&gt;".
"/usr/vacpp/include/xutility", line 630.14: 1540-1283 (I) "template &lt;class _E, class _Tr&gt; std::operator!=(const istreambuf_iterator&lt;_E,_Tr&gt; &amp;, const istreambuf_iterator&lt;_E,_Tr&gt; &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.10: 1540-0288 (I) The function template parameter of type "const istreambuf_iterator&lt;_E,_Tr&gt; &amp;" cannot be initialized with an argument of type "const std::reverse_iterator&lt;std::_Ptrit&lt;char,long,const char *,const char &amp;,char *,char &amp;&gt; &gt;".
"/usr/vacpp/include/iterator", line 197.14: 1540-1283 (I) "template &lt;class _Ty, class _E, class _Tr, class _Dist&gt; std::operator!=(const istream_iterator&lt;_Ty,_E,_Tr,_Dist&gt; &amp;, const istream_iterator&lt;_Ty,_E,_Tr,_Dist&gt; &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.10: 1540-0288 (I) The function template parameter of type "const istream_iterator&lt;_Ty,_E,_Tr,_Dist&gt; &amp;" cannot be initialized with an argument of type "const std::reverse_iterator&lt;std::_Ptrit&lt;char,long,const char *,const char &amp;,char *,char &amp;&gt; &gt;".
"/usr/vacpp/include/xmemory", line 433.14: 1540-1283 (I) "template &lt;class _Ty, class _U&gt; std::operator!=(const allocator&lt;_Ty&gt; &amp;, const allocator&lt;_U&gt; &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.10: 1540-0288 (I) The function template parameter of type "const allocator&lt;_Ty&gt; &amp;" cannot be initialized with an argument of type "const std::reverse_iterator&lt;std::_Ptrit&lt;char,long,const char *,const char &amp;,char *,char &amp;&gt; &gt;".
"/usr/vacpp/include/string", line 120.14: 1540-1283 (I) "template &lt;class _E, class _Tr, class _A&gt; std::operator!=(const basic_string&lt;_E,_Tr,_A&gt; &amp;, const basic_string&lt;_E,_Tr,_A&gt; &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.10: 1540-0288 (I) The function template parameter of type "const basic_string&lt;_E,_Tr,_A&gt; &amp;" cannot be initialized with an argument of type "const std::reverse_iterator&lt;std::_Ptrit&lt;char,long,const char *,const char &amp;,char *,char &amp;&gt; &gt;".
"/usr/vacpp/include/string", line 124.14: 1540-1283 (I) "template &lt;class _E, class _Tr, class _A&gt; std::operator!=(const _E *, const basic_string&lt;_E,_Tr,_A&gt; &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.10: 1540-0288 (I) The function template parameter of type "const _E *" cannot be initialized with an argument of type "const std::reverse_iterator&lt;std::_Ptrit&lt;char,long,const char *,const char &amp;,char *,char &amp;&gt; &gt;".
"/usr/vacpp/include/string", line 128.14: 1540-1283 (I) "template &lt;class _E, class _Tr, class _A&gt; std::operator!=(const basic_string&lt;_E,_Tr,_A&gt; &amp;, const _E *)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.10: 1540-0288 (I) The function template parameter of type "const basic_string&lt;_E,_Tr,_A&gt; &amp;" cannot be initialized with an argument of type "const std::reverse_iterator&lt;std::_Ptrit&lt;char,long,const char *,const char &amp;,char *,char &amp;&gt; &gt;".
"/usr/vacpp/include/vector", line 807.14: 1540-1283 (I) "template &lt;class _Ty, class _A&gt; std::operator!=(const vector&lt;_Ty,_A&gt; &amp;, const vector&lt;_Ty,_A&gt; &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.10: 1540-0288 (I) The function template parameter of type "const vector&lt;_Ty,_A&gt; &amp;" cannot be initialized with an argument of type "const std::reverse_iterator&lt;std::_Ptrit&lt;char,long,const char *,const char &amp;,char *,char &amp;&gt; &gt;".
"/usr/vacpp/include/xcomplex", line 261.14: 1540-1283 (I) "template &lt;class _Ty&gt; std::operator!=(const complex&lt;_Ty&gt; &amp;, const complex&lt;_Ty&gt; &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.10: 1540-0288 (I) The function template parameter of type "const complex&lt;_Ty&gt; &amp;" cannot be initialized with an argument of type "const std::reverse_iterator&lt;std::_Ptrit&lt;char,long,const char *,const char &amp;,char *,char &amp;&gt; &gt;".
"/usr/vacpp/include/xcomplex", line 265.14: 1540-1283 (I) "template &lt;class _Ty&gt; std::operator!=(const complex&lt;_Ty&gt; &amp;, const _Ty &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.10: 1540-0288 (I) The function template parameter of type "const complex&lt;_Ty&gt; &amp;" cannot be initialized with an argument of type "const std::reverse_iterator&lt;std::_Ptrit&lt;char,long,const char *,const char &amp;,char *,char &amp;&gt; &gt;".
"/usr/vacpp/include/xcomplex", line 269.14: 1540-1283 (I) "template &lt;class _Ty&gt; std::operator!=(const _Ty &amp;, const complex&lt;_Ty&gt; &amp;)" is not a viable candidate.
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1966.36: 1540-0288 (I) The function template parameter of type "const complex&lt;_Ty&gt; &amp;" cannot be initialized with an argument of type "std::reverse_iterator&lt;std::_Ptrit&lt;char,long,char *,char &amp;,char *,char &amp;&gt; &gt;".
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 1876.6: 1540-0700 (I) The previous message was produced while processing "boost::multiprecision::backends::cpp_dec_float&lt;53,int,void&gt;::rd_string(const char * const)".
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 414.7: 1540-0700 (I) The previous message was produced while processing "boost::multiprecision::backends::cpp_dec_float&lt;53,int,void&gt;::operator=(const char *)".
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 182.16: 1540-0700 (I) The previous message was produced while processing "boost::multiprecision::backends::cpp_dec_float&lt;53,int,void&gt;::cpp_dec_float(const char *)".
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 2605.8: 1540-0700 (I) The previous message was produced while processing "boost::multiprecision::backends::cpp_dec_float&lt;53,int,void&gt;::pow2(const long long)".
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 159.14: 1540-0700 (I) The previous message was produced while processing "boost::multiprecision::backends::cpp_dec_float&lt;53,int,void&gt;::initializer::initializer()".
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 601.72: 1540-0700 (I) The previous message was produced while processing "boost::multiprecision::backends::cpp_dec_float&lt;53,int,void&gt;::init".
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 361.32: 1540-0700 (I) The previous message was produced while processing "boost::multiprecision::backends::cpp_dec_float&lt;53,int,void&gt;::eps()".
"../../../../../../include/boost/multiprecision/cpp_dec_float.hpp", line 52.7: 1540-0700 (I) The previous message was produced while processing "class boost::multiprecision::backends::cpp_dec_float&lt;53,int,void&gt;".
"../../../../../../include/boost/multiprecision/number.hpp", line 38.7: 1540-0700 (I) The previous message was produced while processing "class boost::multiprecision::number&lt;boost::multiprecision::backends::cpp_dec_float&lt;53,int,void&gt;,0&gt;".
"myTest.cc", line 14.6: 1540-0700 (I) The previous message was produced while processing "averageT(double *)".
</code></pre>

<p>'</p>