gpt4 book ai didi

c++ - boost::xtime 没有名为 'is_pos_infinity' 的成员

转载 作者:行者123 更新时间:2023-12-03 20:38:39 25 4
gpt4 key购买 nike

我的任务是移植一个遗留软件,客户决定在此过程中将 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/

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