单元的 C++ 可用 "literal suffix code"

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

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

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

有谁知道例如可以使用的SI系统?

最佳答案

使用boost.units .

您将获得预期的好处:能够安全地处理以不同单位表示的指标。
boost 单位的语法还不错:

quantity<length>    dx(2.0*meter);

关于单元的 C++ 可用 "literal suffix code",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13320643/

相关文章:

c++ - 未定义引用 boost::program_options::abstract_variables_map::operator[]

c++ - 如何在 Excel::Range 中包装在 VARIANT 中传递的 Excel Range 对象

c++ - 在 ImGui 中嵌入大于字符大小的字体

c++ - 什么是 C++20 的字符串文字运算符模板?

c++ - 在左值上调用用户定义的文字

c++ - 我可以将作用域枚举用于带有模板的 C++ 标记分派(dispatch)吗?

c++ - sizeof(*this) 给出了错误的值

c++ - 如何创建将 Class<T> 转换为 Class<U> 的函数,其中 T 和 U 是任意数字类型?

android - c++11线程或boost.thread支持android ios

c++ - VS2015 中的计时文字