Why don't you give a code snippet that does what you want to do?
using namespace boost::units;
class Test {
public:
void setX(quantity<si::length> const& x) {
m_X = x;
}
private:
quantity<si::length> m_X;
};
int main(int, char const *[]) {
typedef boost::units::us::foot_base::unit_type foot_unit;
static const foot_unit foot;
Test a;
quantity<si::length> first (1.0 * si::meter);
quantity<foot_unit> second(1.0 * foot);
quantity<boost::units::si::meter_base_unit::unit_type> third (1.0 * si::meter);
a.setX(first);
a.setX(second);
a.setX(third);
return 0;
}