Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 52 additions & 56 deletions source/exec.tex
Original file line number Diff line number Diff line change
Expand Up @@ -484,14 +484,6 @@
template<class T>
using @\libglobal{env_of_t}@ = decltype(get_env(declval<T>()));

// \ref{exec.prop}, class template \tcode{prop}
template<class QueryTag, class ValueType>
struct prop;

// \ref{exec.env}, class template \tcode{env}
template<@\exposconcept{queryable}@... Envs>
struct env;

// \ref{exec.domain.default}, execution domains
struct default_domain;

Expand Down Expand Up @@ -594,6 +586,14 @@
constexpr decltype(auto) apply_sender(
Domain dom, Tag, Sndr&& sndr, Args&&... args) noexcept(@\seebelow@);

// \ref{exec.getcomplsigs}, get completion signatures
template<class Sndr, class... Env>
consteval auto get_completion_signatures() -> @\exposconcept{valid-completion-signatures}@ auto;

template<class Sndr, class... Env>
requires @\libconcept{sender_in}@<Sndr, Env...>
using completion_signatures_of_t = decltype(get_completion_signatures<Sndr, Env...>());

// \ref{exec.connect}, the connect sender algorithm
struct @\libglobal{connect_t}@;
inline constexpr connect_t @\libglobal{connect}@{};
Expand Down Expand Up @@ -664,6 +664,21 @@
inline constexpr stopped_as_error_t @\libglobal{stopped_as_error}@{};
inline constexpr associate_t @\libglobal{associate}@{};
inline constexpr spawn_future_t @\libglobal{spawn_future}@{};
}

namespace std::this_thread {
// \ref{exec.consumers}, consumers
struct @\libglobal{sync_wait_t}@ { @\unspec@ };
struct @\libglobal{sync_wait_with_variant_t}@ { @\unspec@ };

inline constexpr sync_wait_t @\libglobal{sync_wait}@{};
inline constexpr sync_wait_with_variant_t @\libglobal{sync_wait_with_variant}@{};
}

namespace std::execution {
// \ref{exec.consumers}, consumers
struct @\libglobal{spawn_t}@ { @\unspec@ };
inline constexpr spawn_t spawn{};

// \ref{exec.cmplsig}, completion signatures
template<class Fn>
Expand All @@ -677,31 +692,16 @@

struct dependent_sender_error : exception {};

// \ref{exec.getcomplsigs}, get completion signatures
template<class Sndr, class... Env>
consteval auto get_completion_signatures() -> @\exposconcept{valid-completion-signatures}@ auto;
// \ref{exec.prop}, class template \tcode{prop}
template<class QueryTag, class ValueType>
struct prop;

template<class Sndr, class... Env>
requires @\libconcept{sender_in}@<Sndr, Env...>
using completion_signatures_of_t = decltype(get_completion_signatures<Sndr, Env...>());
// \ref{exec.env}, class template \tcode{env}
template<@\exposconcept{queryable}@... Envs>
struct env;

// \ref{exec.run.loop}, run_loop
class run_loop;
}

namespace std::this_thread {
// \ref{exec.consumers}, consumers
struct @\libglobal{sync_wait_t}@ { @\unspec@ };
struct @\libglobal{sync_wait_with_variant_t}@ { @\unspec@ };

inline constexpr sync_wait_t @\libglobal{sync_wait}@{};
inline constexpr sync_wait_with_variant_t @\libglobal{sync_wait_with_variant}@{};
}

namespace std::execution {
// \ref{exec.consumers}, consumers
struct @\libglobal{spawn_t}@ { @\unspec@ };
inline constexpr spawn_t spawn{};

// \ref{exec.as.awaitable}, coroutine utility \tcode{as_awaitable}
struct @\libglobal{as_awaitable_t}@ { @\unspec@ };
Expand All @@ -711,33 +711,6 @@
template<@\exposconcept{class-type}@ Promise>
struct with_awaitable_senders;

// \ref{exec.scope.concepts}, scope concepts
template<class Token>
concept @\libconcept{scope_token}@ = @\seebelow@;

// \ref{exec.scope.simple.counting}, simple counting scope
class simple_counting_scope;

// \ref{exec.scope.counting}, counting scope
class counting_scope;
}

namespace std::execution {
// \ref{exec.par.scheduler}, parallel scheduler
class @\libglobal{parallel_scheduler}@;
parallel_scheduler get_parallel_scheduler();
}

// \ref{exec.sysctxrepl}, namespace \tcode{system_context_replaceability}
namespace std::execution::@\libglobal{system_context_replaceability}@ {
struct receiver_proxy;
struct bulk_item_receiver_proxy;
struct parallel_scheduler_backend;

shared_ptr<parallel_scheduler_backend> query_parallel_scheduler_backend();
}

namespace std::execution {
// \ref{exec.affine.on}, coroutine utility \tcode{affine_on}
struct @\libglobal{affine_on_t}@ { @\unspec@ };
inline constexpr affine_on_t @\libglobal{affine_on}@{};
Expand Down Expand Up @@ -767,6 +740,29 @@
// \ref{exec.task}, class template \tcode{task}
template<class T, class Environment>
class @\libglobal{task}@;

// \ref{exec.scope.concepts}, scope concepts
template<class Token>
concept @\libconcept{scope_token}@ = @\seebelow@;

// \ref{exec.scope.simple.counting}, simple counting scope
class simple_counting_scope;

// \ref{exec.scope.counting}, counting scope
class counting_scope;

// \ref{exec.par.scheduler}, parallel scheduler
class @\libglobal{parallel_scheduler}@;
parallel_scheduler get_parallel_scheduler();

// \ref{exec.sysctxrepl}, namespace \tcode{system_context_replaceability}
namespace @\libglobal{system_context_replaceability}@ {
struct receiver_proxy;
struct bulk_item_receiver_proxy;
struct parallel_scheduler_backend;

shared_ptr<parallel_scheduler_backend> query_parallel_scheduler_backend();
}
}
\end{codeblock}

Expand Down