Opened 6 years ago
#12708 new Bugs
Cannot use Boost Units cmath.hpp with custom systems
| Reported by: | Owned by: | Matthias Schabel | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | units |
| Version: | Boost 1.62.0 | Severity: | Problem |
| Keywords: | Cc: |
Description
When creating a new, custom unit sustem in Boost Units using boost::units::make_system, there's an issue when including cmath.hpp:
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<N>&)
^
Common/Units.h:26:15: note: in instantiation of template class 'boost::units::base_unit<VA::Units::SquareBaseUnit, boost::units::list<boost::units::dim<boost::units::length_base_dimension,
boost::units::static_rational<1, 1> >, boost::units::dimensionless_type>, -9, void>' requested here
: boost::units::base_unit<SquareBaseUnit, boost::units::length_dimension, -9>
^
boost/boost/units/base_unit.hpp:108:9: note: previous declaration is here
check_double_register(const units::base_unit_ordinal<N>&)
^
boost/boost/units/base_unit.hpp:114:9: error: redefinition of 'boost_units_unit_is_registered'
As you can see, cmath includes the full si system and you cannot make your own after that.
Note:
See TracTickets
for help on using tickets.
