Boost C++ Libraries: Ticket #12708: Cannot use Boost Units cmath.hpp with custom systems https://svn.boost.org/trac10/ticket/12708 <p> When creating a new, custom unit sustem in Boost Units using boost::units::make_system, there's an issue when including cmath.hpp: </p> <pre class="wiki">In file included from boost/boost/units/cmath.hpp:29: In file included from boost/boost/units/systems/si/plane_angle.hpp:14: In file included from boost/boost/units/systems/si/base.hpp:20: In file included from boost/boost/units/base_units/si/meter.hpp:17: /boost/boost/units/base_unit.hpp:108:9: error: functions that differ only in their return type cannot be overloaded check_double_register(const units::base_unit_ordinal&lt;N&gt;&amp;) ^ Common/Units.h:26:15: note: in instantiation of template class 'boost::units::base_unit&lt;VA::Units::SquareBaseUnit, boost::units::list&lt;boost::units::dim&lt;boost::units::length_base_dimension, boost::units::static_rational&lt;1, 1&gt; &gt;, boost::units::dimensionless_type&gt;, -9, void&gt;' requested here : boost::units::base_unit&lt;SquareBaseUnit, boost::units::length_dimension, -9&gt; ^ boost/boost/units/base_unit.hpp:108:9: note: previous declaration is here check_double_register(const units::base_unit_ordinal&lt;N&gt;&amp;) ^ boost/boost/units/base_unit.hpp:114:9: error: redefinition of 'boost_units_unit_is_registered' </pre><p> As you can see, cmath includes the full si system and you cannot make your own after that. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/12708 Trac 1.4.3