Я ожидал, что это скомпилируется правильно:
#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;
}
К сожалению, это приводит к нескольким сотням ошибок в GCC.
Конечно, я мог бы сделать это вместо этого.
BOOST_CHECK_CLOSE(q1.value(), 15, 1e-8);
Но я хотел бы сохранить единицы измерения в тестовом примере, на тот случай, если кто-то решит изменить тип модуля. q1
,
Есть ли способ сохранить единицу в явном виде?
Задача ещё не решена.