[stoptoken.inplace] (original) (raw)
32 Concurrency support library [thread]
32.3 Stop tokens [thread.stoptoken]
32.3.8 Class inplace_stop_token [stoptoken.inplace]
32.3.8.1 General [stoptoken.inplace.general]
The class inplace_stop_token models the concept stoppable_token.
It references the stop state of its associated inplace_stop_source object ([stopsource.inplace]), if any.
namespace std { class inplace_stop_token { public: template<class CallbackFn> using callback_type = inplace_stop_callback<CallbackFn>; inplace_stop_token() = default;bool operator==(const inplace_stop_token&) const = default;bool stop_requested() const noexcept;bool stop_possible() const noexcept;void swap(inplace_stop_token&) noexcept;private: const inplace_stop_source* stop-source = nullptr; };}
32.3.8.2 Member functions [stoptoken.inplace.mem]
void swap(inplace_stop_token& rhs) noexcept;
Effects: Exchanges the values of stop-source and rhs.stop-source.
bool stop_requested() const noexcept;
Effects: Equivalent to:return stop-source != nullptr && _stop-source_->stop_requested();
[Note 1:
As specified in [basic.life], the behavior of stop_requested is undefined unless the call strongly happens before the start of the destructor of the associated inplace_stop_source object, if any.
— _end note_]
stop_possible() const noexcept;
Returns: stop-source != nullptr.
[Note 2:
As specified in [basic.stc.general], the behavior of stop_possible is implementation-defined unless the call strongly happens before the end of the storage duration of the associated inplace_stop_source object, if any.
— _end note_]