
Only the last line fails? The only line of that which should compile is the #include.
conversion_factor return the conversion between two different units. kilometer in your example is not a unit.
#include
double mile_to_km = conversion_factor(mile(), si::kilo*si::meter);
#include <iostream>
#include
::unit_type kilometer_type; typedef us ::mile_base_unit ::unit_type mile_type;
const kilometer_type kilometer;
const mile_type mile;
double miles_to_kilometers = conversion_factor(mile,kilometer);
double kilometers_to_miles = conversion_factor(kilometer,mile);
std::cout << "1 " << mile << " = " << miles_to_kilometers << " "
<< kilo*meters << std::endl;
std::cout << "1 " << kilometer << " = " << kilometers_to_miles <<
" " << mile << std::endl;
quantitysi::length q1(1.0*mile);
quantitysi::length q2(1.0*kilo*mile);
quantity