Boost logo

Boost Users :

Subject: [Boost-users] Problem with user defined Boost Units system
From: Stephen Torri (stephen.torri_at_[hidden])
Date: 2011-11-30 11:49:55


I am using Boost 1.45 and trying to use Boost Units to map the types
of astrodynamic equation variables. I am getting an error with the
following equation. The error is saying that the lvalue type for
k2_divded_by_semi_major is wrong.

The questions I have are:

Q1: Did I defined my system correctly? (System file is attached - types.hpp)

Q2: How do I define ratio in the system? For example I have some
constants that define a conversion (1 earth radii = 6378 km).

Q3: How do I define a variable type if its a fraction (e.g. radii / radian )?

---- EQUATION ----

sgp4::types::radii_t k2_divided_by_semi_major = m_k2 / pow<2> ( semi_major );

The types of variables are:

m_k2 sgp4::types::radii_t
semi_major sgp4::types::radian_t

---- ERROR ----

1> [
1> Unit=boost::units::unit<boost::units::list<boost::units::dim<boost::units::length_base_dimension,boost::units::static_rational<-1>>,boost::units::detail::merge_dimensions_impl<0,0>::apply<boost::units::dimensionless_type,boost::units::dimensionless_type>::type>,boost::units::homogeneous_system<boost::units::list<sgp4::types::radii_base_unit,boost::units::list<sgp4::types::radian_base_unit,boost::units::dimensionless_type>>>>,
1> Y=double
1> ]
1> and
1> [
1> Unit=sgp4::types::sgp4_length_t,
1> Y=double
1> ]
1> Constructor for class 'boost::units::quantity<Unit,Y>' is
declared 'explicit'
1> with
1> [
1> Unit=sgp4::types::sgp4_length_t,
1> Y=double
1> ]

Regards,

Stephen




Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net