Also, I should point out that you don't need the intermediate
typedef.
BOOST_UNITS_STATIC_CONSTANT(nautical_mile,
metric::nautical_mile_base_unit::unit_type);
will work just fine.
This was what I was looking for. I found that BOOST_UNITS_STATIC_CONSTANT needs to be declared outside of the class. I think is due to the namespace the macro uses. I couldn't though use it to declare nautical_miles_per_hour.
BOOST_UNITS_STATIC_CONSTANT(nautical_miles, metric::nautical_mile_base_unit::unit_type);
BOOST_UNITS_STATIC_CONSTANT(hours, metric::hour_base_unit::unit_type);
BOOST_UNITS_STATIC_CONSTANT(nautical_miles_per_hour, decltype(BOOST_TYPEOF(nautical_miles)() / BOOST_TYPEOF(hours)())); //This doesn't compile
I could however do the following.
static const decltype(BOOST_TYPEOF(nautical_miles)() / BOOST_TYPEOF(hours)()) nautical_miles_per_hour;
I don't understand the difference.
Ryan