I expected this to compile properly:
#include <boost/test/unit_test.hpp>
#include <boost/units/quantity.hpp>
#include <boost/units/systems/angle/degrees.hpp>
using boost::units::quantity;
using boost::units::degree::degrees;
using boost::units::degree::plane_angle;
int main() {
quantity<plane_angle> q1 = 15 * degrees;
BOOST_CHECK_CLOSE(q1, 15 * degrees, 1e-8);
return 0;
}
Unfortunately this produces a couple hundreds lines of errors with GCC.
Of course I could do this instead.
BOOST_CHECK_CLOSE(q1.value(), 15, 1e-8);
But I would like to keep the units explicit in the test case, just in case that someone else decides to change the unit type of q1.
Is there any way to keep the unit explicit?