Boost C++ Libraries: Ticket #7485: build failure with BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS https://svn.boost.org/trac10/ticket/7485 <p> With boost-1.52 beta1, and possibly earlier, I'm no longer able to build with BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS. I'm getting errors like that below when defining that variable in $BOOST_ROOT/boost/math/tools/user.hpp. This works in boost-1.49; I haven't tried to narrow down the introduction of this issue more narrowly than that. I don't think it matters, but this is with gcc4.5 and gcc4.6. </p> <p> The promote_args class template in boost/math/tools/promotion.hpp has a static assertion that errors if the result type is long double and BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS is defined. </p> <p> In file included from ./boost/math/special_functions/math_fwd.hpp:27:0, </p> <blockquote> <p> from ./boost/math/special_functions/sign.hpp:17, from ./boost/lexical_cast.hpp:165, from ./boost/math/special_functions/gamma.hpp:24, from ./boost/math/special_functions/detail/bessel_jy.hpp:14, from ./boost/math/special_functions/bessel.hpp:17, from ./boost/math/special_functions/airy.hpp:10, from ./boost/math/special_functions.hpp:15, from libs/math/src/tr1/pch.hpp:9, from libs/math/build/../src/tr1/nexttoward.cpp:6: </p> </blockquote> <p> ./boost/math/tools/promotion.hpp: In instantiation of 'boost::math::tools::promote_args&lt;long double, float, float, float, float, float&gt;': </p> <p> ./boost/math/special_functions/fpclassify.hpp:252:50: instantiated from 'int boost::math::fpclassify(T) [with T = long double]' </p> <p> ./boost/math/special_functions/next.hpp:177:47: instantiated from 'T boost::math::float_prior(const T&amp;, const Policy&amp;) [with T = long double, Policy = boost::math::policies::policy&lt;boost::math::policies::domain_error&lt;(boost::math::policies::error_policy_type)1u&gt;, boost::math::policies::pole_error&lt;(boost::math::policies::error_policy_type)1u&gt;, boost::math::policies::overflow_error&lt;(boost::math::policies::error_policy_type)1u&gt;, boost::math::policies::evaluation_error&lt;(boost::math::policies::error_policy_type)1u&gt;, boost::math::policies::rounding_error&lt;(boost::math::policies::error_policy_type)1u&gt;, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy&gt;]' </p> <p> ./boost/math/special_functions/next.hpp:245:123: instantiated from 'T boost::math::nextafter(const T&amp;, const T&amp;, const Policy&amp;) [with T = long double, Policy = boost::math::policies::policy&lt;boost::math::policies::domain_error&lt;(boost::math::policies::error_policy_type)1u&gt;, boost::math::policies::pole_error&lt;(boost::math::policies::error_policy_type)1u&gt;, boost::math::policies::overflow_error&lt;(boost::math::policies::error_policy_type)1u&gt;, boost::math::policies::evaluation_error&lt;(boost::math::policies::error_policy_type)1u&gt;, boost::math::policies::rounding_error&lt;(boost::math::policies::error_policy_type)1u&gt;, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy&gt;]' </p> <p> libs/math/build/../src/tr1/c_policy.hpp:129:15801: instantiated from 'T c_policies::nextafter(const T&amp;, const T&amp;) [with T = long double]' </p> <p> libs/math/build/../src/tr1/nexttoward.cpp:18:59: instantiated from here </p> <p> ./boost/math/tools/promotion.hpp:141:10: error: static assertion failed: "(0 == ::boost::is_same&lt;type, long double&gt;::value)" </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/7485 Trac 1.4.3 John Maddock Tue, 09 Oct 2012 16:09:54 GMT status, component changed; owner set https://svn.boost.org/trac10/ticket/7485#comment:1 https://svn.boost.org/trac10/ticket/7485#comment:1 <ul> <li><strong>owner</strong> set to <span class="trac-author">John Maddock</span> </li> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">assigned</span> </li> <li><strong>component</strong> <span class="trac-field-old">None</span> → <span class="trac-field-new">math</span> </li> </ul> Ticket John Maddock Wed, 10 Oct 2012 12:21:22 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/7485#comment:2 https://svn.boost.org/trac10/ticket/7485#comment:2 <ul> <li><strong>status</strong> <span class="trac-field-old">assigned</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/80932" title="Fix for build failure when there are no long double functions. Fixes #7485.">[80932]</a>) Fix for build failure when there are no long double functions. Fixes <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7485" title="#7485: Bugs: build failure with BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS (closed: fixed)">#7485</a>. </p> Ticket