C++中wait_for_service函数参数列表末尾(-1)的含义是什么?
关于rclcpp中wait_for_service参数(-1)的含义
首先明确参数类型:std::chrono::duration<int64_t, RatioT>是C++标准库的时间时长类型,构造时传入的数值代表指定时间单位下的周期数——比如默认模板参数RatioT = std::milli(毫秒)时,传入1就代表1毫秒,传入1000就代表1秒。
而这里用(-1)构造的duration作为默认参数,是ROS2 rclcpp框架里的约定:
- 这个负的时长值表示无限等待
- 调用
wait_for_service时如果不主动指定timeout参数,函数会一直阻塞,直到目标服务上线可用,不会因为超时而返回false
换句话说,这个(-1)就是给函数传递“不用设超时,一直等服务出现”的指令。
内容的提问来源于stack exchange,提问作者no name
相关产品推荐
相关产品推荐

