Skip to content

io.hpp is required to compile vector of dimensioned types #60

@NAThompson

Description

@NAThompson

To reproduce:

#include <vector>
#include <boost/units/systems/si/length.hpp>
// Uncomment to fix:
//#include <boost/units/systems/si/io.hpp>

using namespace boost::units;
using namespace boost::units::si;

auto dimensioned_sphere(std::vector<quantity<length>> const & v) {
  return v[0];
}

int main()
{
    return 0;
}

Compile error:

main.cpp:9:10: fatal error: implicit instantiation of undefined template 'boost::units::quantity<boost::units::unit<boost::units::list<boost::units::dim<boost::units::length_base_dimension, boost::units::static_rational<1>>, boost::units::dimensionless_type>, boost::units::homogeneous_system<boost::units::list<boost::units::si::meter_base_unit, boost::units::list<boost::units::scaled_base_unit<boost::units::cgs::gram_base_unit, boost::units::scale<10, static_rational<3>>>, boost::units::list<boost::units::si::second_base_unit, boost::units::list<boost::units::si::ampere_base_unit, boost::units::list<boost::units::si::kelvin_base_unit, boost::units::list<boost::units::si::mole_base_unit, boost::units::list<boost::units::si::candela_base_unit, boost::units::list<boost::units::angle::radian_base_unit, boost::units::list<boost::units::angle::steradian_base_unit, boost::units::dimensionless_type>>>>>>>>>>>>'
    9 |   return v[0];
      |          ^
~/boost/boost/units/units_fwd.hpp:52:45: note: template is declared here
   52 | template<class Unit,class Y = double> class quantity;
      |                                             ^
1 error generated.

Error on top of 4578701.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions