问题标签 [boost-units]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
356 浏览

c++ - Boost.Units 是如何得出这种不精确的转换结果的?

考虑以下代码:

我得到以下输出:

显然,Boost.Units 在某个地方手动定义了非常低的精度 M_PI,因为它只是在小数点后 12 位后被截断。但是当我grepped 我的/usr/include/时,我只在 中发现了这个不精确的定义/usr/include/python2.7/Imaging.h,看起来完全不相关。所有其他都指定了更多的十进制数字。

所以,我的问题是:Boost 是如何得出这个结果的?

0 投票
1 回答
1542 浏览

c++ - 使用 boost chrono 格式化时间

我想知道是否有任何方法可以只获取时间而不打印单位:

输出是:

我只想得到

有什么解决办法吗?

0 投票
0 回答
131 浏览

c++ - 如何将 Boost 测试与 Boost 单元一起使用

我希望这可以正确编译:

不幸的是,这会在 GCC 中产生数百行错误。

当然,我可以这样做。

但我想在测试用例中保持单位明确,以防其他人决定更改q1.

有没有办法让单位明确?

0 投票
2 回答
782 浏览

c++ - 将运行时参数传递给 odeint 积分器

我想使用 odeint boost 积分器来查看 Kerr 时空中的测地线曲线。这需要为各种参数值运行积分器(我有初始条件和初始动量向量,因此系统的角动量会根据我想要启动它的方式而有所不同)

我一直在关注这里列出的优秀示例

http://headmyshoulder.github.io/odeint-v2/examples.html

特别是洛伦兹吸引子的例子。

我注意到的第一件事(在我的 Kerr 系统中,而不是 Lorenz 中)是对于某些初始条件,我在 t=0 时间点之后得到 NaN(尽管毫无疑问,这表明某处存在更深层次的错误)。为了进一步探索这一点,我希望能够更改系统的参数,而不必每次都重新编译。这相当于想要改变,比如 R 或 sigma 而不重新编译。据我所知,没有直接的方法可以将额外的参数传递给集成函数,除了这里的第二个代码块

http://headmyshoulder.github.io/odeint-v2/doc/boost_numeric_odeint/tutorial/harmonic_oscillator.html

我承认,由于我缺乏 C++ 知识,我不太明白。

我很感激有关如何接受运行时参数并将它们传递给这个求解器的知识,这样我就可以运行一堆批次而无需每次编译。

0 投票
1 回答
522 浏览

c++ - 添加分钟和秒。以小时为单位显示

假设我想添加 29 分 60 秒并以小时为单位显示结果。

这似乎有效:

控制台上显示以下内容:

这是推荐的方法吗?有没有更好或更惯用的方法?

说明上述示例的整个程序如下。

0 投票
1 回答
131 浏览

c++ - 定义分钟单位

这是另一个问题的一些代码,它将 29.0 分钟增加到 60.0 秒,并以小时为单位显示结果:

推荐的定义方式是什么,minutes以便上面的表达式可以写成:

0 投票
0 回答
292 浏览

c++ - Boost.Units 和带前缀的赋值运算符

我正在尝试开始使用 Boost.Units 并面临以下问题:

由于库的模板化性质,该错误非常长:error: conversion from 'boost::units::multiply_typeof_helper<boost::units::quantity...

这是设计使然,还是我遗漏了什么?

0 投票
1 回答
581 浏览

c++ - 错误 C2039:'serialize': 不是 'boost::units::quantity 的成员'

如何序列化类型为electric_potential 和double 的地图?在我的代码中,我放置了这些标题:

我尝试了所有标题,但仍然出现此错误:

我正在寻找最简单的方法来解决这个问题。感谢 这张图片中的代码,当我使用类型electrical_potential

0 投票
1 回答
337 浏览

c++ - boost::lexical_cast 和 boost::units::quantity 不再编译

我对解析通过 boost_program_options 获取的值以提升::units 数量的代码有疑问。它以前工作得很好,现在,在新的设置上,不再工作了。晦涩的错误消息暗示了 boost::lexical_cast 的问题,它似乎被 program_options 使用。

一个最小的例子(我摆脱了所有程序选项的东西)是

这在我的旧设置(gcc 4.7.2,boost 1.49)上编译没有错误,但是在带有 boost 1.55 的 gcc 4.9.2 上不再编译(顺便说一下,请忽略这样一个事实,即使它编译,它也会在无论哪种情况,因为实际上没有从流中读取任何内容;我不想通过包含整个解析逻辑来混淆这篇文章)。相反,我收到错误消息

如果我在词法转换中使用不同的自定义类型(不是 boost::units::quantity)并为其重载 >> 运算符,或者如果我直接尝试从字符串流中读取数量,一切正常。

有人可以告诉我我在这里做错了什么吗?

0 投票
0 回答
44 浏览

c++ - 派生 boost::units::quantity 的类中的赋值运算符

我对赋值运算符有疑问。请看下面我的代码:

我的问题是使用 Parameter 类实例时。您可能知道boost::units::quantity变量的操作物理单位。因此我必须使用所有来自boost::units::quantity. 这样操作的结果又是数量。例如:

到目前为止一切顺利,使用了赋值运算符取数量。做非常相似的事情时会出现问题:

正如Parameter<>派生的那样quantity<>,似乎也使用了将数量作为参数的赋值运算符!

问题:有没有办法强制编译器在第二种情况下使用赋值运算符Parameter<>作为参数?quantity<>:: operator +

非常感谢任何愿意提供帮助的人。干杯马丁