作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的任务是移植一个遗留软件,客户决定在此过程中将 Boost 从 1.34 更新到 1.75。
不幸的是,我在编译时出现了这个问题:
/usr/include/boost/thread/pthread/recursive_mutex.hpp: In instantiation of ‘bool boost::recursive_timed_mutex::timed_lock(const TimeDuration&) [with TimeDuration = boost::xtime]’:
/usr/include/boost/thread/lock_types.hpp:403:30: required from ‘bool boost::unique_lock<Mutex>::timed_lock(const boost::xtime&) [with Mutex = boost::recursive_timed_mutex]’
/usr/include/boost/thread/lock_types.hpp:146:17: required from ‘boost::unique_lock<Mutex>::unique_lock(Mutex&, const TimeDuration&) [with TimeDuration = boost::xtime; Mutex = boost::recursive_timed_mutex]’
{project source file}.hpp:206:118: required from here
/usr/include/boost/thread/pthread/recursive_mutex.hpp:244:31: error: ‘const struct boost::xtime’ has no member named ‘is_pos_infinity’
244 | if (relative_time.is_pos_infinity())
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/usr/include/boost/thread/pthread/recursive_mutex.hpp:249:31: error: ‘const struct boost::xtime’ has no member named ‘is_special’
249 | if (relative_time.is_special())
| ~~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/boost/thread/pthread/recursive_mutex.hpp:253:39: error: no matching function for call to ‘boost::detail::platform_duration::platform_duration(const boost::xtime&)’
253 | detail::platform_duration d(relative_time);
| ^
是什么让 Boost 对自己不满意,我该如何解决?
最佳答案
在我的特殊情况下,我能够找到根本原因并修复它。
我觉得最新的文档在确定预期输入变量的类型应该是什么方面很奇怪,但根据 Boost v1.75 doc , m.timed_lock(t)
期望类型为 boost::system_time
,但仍被喂食 boost::xtime
,这是它在 Boost v1.34 中的预期.
我们源代码中的一些地方计算了输入 m.timed_lock(t)
的等待时间。提供了 boost::xtime
,我只需要更改它们以提供 boost::system_time
反而。
关于c++ - boost::xtime 没有名为 'is_pos_infinity' 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67898722/
我的任务是移植一个遗留软件,客户决定在此过程中将 Boost 从 1.34 更新到 1.75。 不幸的是,我在编译时出现了这个问题: /usr/include/boost/thread/pthread
我是一名优秀的程序员,十分优秀!