C ++可用于单位的“文字后缀代码”

时间:2012-11-10 08:53:50

标签: c++ c++11 user-defined-literals

C ++ 1x支持文字后缀(cmp。例如http://ecn.channel9.msdn.com/events/GoingNative12/GN12Cpp11Style.pdf)。我正在使用gcc 4.7并想为我们的系统介绍一些单元。最值得注意的是,我们的一半代码使用度和另一半弧度(由于各种第三方库),显然这始终是错误的常见原因。可以说,例如“弧度角= 90_deg;”会很有帮助的。

我已经研究过如何实现这一点并且它看起来很可行,但是需要一些时间来完成所有事情。所以我想知道是否有一个已完成/经过测试的实现已经实现了所有可以使用的实现(不需要每个C ++开发人员重新实现它,是吗?)。除了rad / deg,我正在寻找长度测量值(mm,cm,m)。我已经谷歌了,但没有找到任何可用的东西。

是否有人知道例如可以使用的SI系统?

1 个答案:

答案 0 :(得分:2)

使用boost.units

您将获得预期收益:能够安全地处理以不同单位表示的指标。
使用boost单元的语法并不是那么糟糕:

quantity<length>    dx(2.0*meter);