为什么 jthread::get_stop_source 不是常量?
Why is not jthread::get_stop_source const?
问题是这么说的。 [thread.jthread.stop]/1 说:
[[nodiscard]] stop_source get_stop_source() noexcept;
Effects: Equivalent to: return ssource
;
为什么不是纯粹的观察者?
stop_source
对象允许您请求拥有此类对象的线程(或其随从 stop_token
)执行停止。这样的要求不合乎逻辑const
。因此,如果您为 jthread
获取 stop_source
,则预计您将执行上述“不符合逻辑的 const
”操作。
所以你用来检索它的函数不是const
。请注意,获得 stop_token
是 const
,因为这是线程安全状态的观察者,而不是它的修饰符。
问题是这么说的。 [thread.jthread.stop]/1 说:
[[nodiscard]] stop_source get_stop_source() noexcept;
Effects: Equivalent to:
return ssource
;
为什么不是纯粹的观察者?
stop_source
对象允许您请求拥有此类对象的线程(或其随从 stop_token
)执行停止。这样的要求不合乎逻辑const
。因此,如果您为 jthread
获取 stop_source
,则预计您将执行上述“不符合逻辑的 const
”操作。
所以你用来检索它的函数不是const
。请注意,获得 stop_token
是 const
,因为这是线程安全状态的观察者,而不是它的修饰符。