【发布时间】:2013-10-08 23:00:16
【问题描述】:
我想使用 Boost.Units 来表示以克每毫升表示的数量。我正在尝试定义单位“毫升”。如果我写
typedef boost::units::make_scaled_unit<
boost::units::si::volume,
boost::units::scale<10, boost::units::static_rational<-3> >
>::type liter;
typedef boost::units::make_scaled_unit<
liter,
boost::units::scale<10, boost::units::static_rational<-3> >
>::type milliliter;
代码编译得很好,但是如果我用boost::units::metric::liter_base_unit 替换我自己的liter,那么milliliter 的定义将无法编译,并且在struct boost::units::make_scaled_unit 中没有名为'type' 的类型“ 错误。
你能解释一下为什么吗? make_scaled_unit 中的单位可以作为基本单位还是我需要从boost::units::metric::liter_base_unit 制作派生单位?
【问题讨论】:
标签: c++ boost compiler-errors units-of-measurement