我想使用 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;
代码编译得很好,但是如果我用 替换自己的代码liter
,boost::units::metric::liter_base_unit
那么定义将milliliter
无法编译,并出现“在 struct boost::units::make_scaled_unit 中没有名为 'type' 的类型”错误。你能解释一下为什么吗?中的单位make_scaled_unit
可以是基本单位还是我需要从中制作派生单位boost::units::metric::liter_base_unit
?