[units] reference frames and conversions

So this appears to work correctly (append this code to the end of unit_example_15 and #include <boost/units/systems/si/length.hpp>) : // two-tier quantity for providing reference frame and underlying unit safety typedef boost::array<quantity<SI::length>,3> vector_type; typedef quantity<world_space_unit,vector_type> world_space_vector_type; typedef quantity<object_space_unit,vector_type> object_space_vector_type; vector_type vec1 = { 0*SI::meter, 0*SI::meter, 0*SI::meter }, vec2 = { 1*SI::meter, 1*SI::meter, 1*SI::meter }; world_space_vector_type wsv1 = vec1*world_space, wsv2 = vec2*world_space; object_space_vector_type osv1 = vec1*object_space, osv2 = vec2*object_space; world_space_vector_type wsv3(wsv1); object_space_vector_type osv3(osv1); world_space_vector_type wsv4(osv2); object_space_vector_type osv4(wsv2); I believe this is the cleanest solution to your requirement for reference frame conversions. The last two lines fail to compile now because the conversion itself is not defined...just specialize conversion_helper and you're off... Matthias
participants (1)
-
Matthias Schabel