#c #c 20 #stdthread
Вопрос:
Вопрос говорит сам за себя. [thread.jthread.stop]/1 говорит:
[[nodiscard]] stop_source get_stop_source() noexcept;
Эффекты: Эквивалентны:
return ssource
;
Почему это не чистый наблюдатель?
Ответ №1:
stop_source
Объект позволяет запросить, чтобы поток, в котором есть такой объект (или его сопровождающий stop_token
), выполнил остановку. Такая просьба не логична const
. Таким образом, если вы выберете a stop_source
для a jthread
, ожидается, что вы собираетесь выполнить вышеупомянутую операцию «не логически const
«.
Таким образом, функция, которую вы использовали для его извлечения, не const
является . Обратите внимание, что получение a stop_token
является const
, поскольку это наблюдатель потокобезопасного состояния, а не его модификатор.