gpt4 book ai didi

c++ - boost::units 中的毫米

转载 作者:可可西里 更新时间:2023-11-01 18:16:12 28 4
gpt4 key购买 nike

我想对某些 SI 指标使用 boost::units。但是我们的代码主要处理毫米而不是使用

quantity<length> value = 1*milli*meter;

我们更喜欢这样的东西

quantity<length> value = 1*millimeter;

但是我不确定如何定义“毫米”(不使用#define)。

其次,使用前缀单元的开销是多少?

更新:这需要在没有 C++11 功能的情况下运行(即没有 UDL)

最佳答案

C++11 确实是最简单的解决方案。你可以做

static const auto millimeter = milli * meter;

auto operator"" _mm (long double val) -> decltype(val * milli * meter)
{
return val * milli * meter;
}

只要您不转换为其他前缀,就不会有性能损失。即使您这样做了,也应该可以忽略不计。

如果你不想使用 C++11,你需要找出表达式 milli * meter 的相应类型,尽管你可以只替换 auto 通过 int 并读取编译器消息。

关于c++ - boost::units 中的毫米,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14724063/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com