Skip to content

Commit 1844b9d

Browse files
jensmaurertkoeppe
authored andcommitted
[execution.syn] Reorder entries to match subclause order
Fixes NB US 201-322 (C++26 CD).
1 parent 8426164 commit 1844b9d

File tree

1 file changed

+52
-56
lines changed

1 file changed

+52
-56
lines changed

source/exec.tex

Lines changed: 52 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -484,14 +484,6 @@
484484
template<class T>
485485
using @\libglobal{env_of_t}@ = decltype(get_env(declval<T>()));
486486

487-
// \ref{exec.prop}, class template \tcode{prop}
488-
template<class QueryTag, class ValueType>
489-
struct prop;
490-
491-
// \ref{exec.env}, class template \tcode{env}
492-
template<@\exposconcept{queryable}@... Envs>
493-
struct env;
494-
495487
// \ref{exec.domain.default}, execution domains
496488
struct default_domain;
497489

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

589+
// \ref{exec.getcomplsigs}, get completion signatures
590+
template<class Sndr, class... Env>
591+
consteval auto get_completion_signatures() -> @\exposconcept{valid-completion-signatures}@ auto;
592+
593+
template<class Sndr, class... Env>
594+
requires @\libconcept{sender_in}@<Sndr, Env...>
595+
using completion_signatures_of_t = decltype(get_completion_signatures<Sndr, Env...>());
596+
597597
// \ref{exec.connect}, the connect sender algorithm
598598
struct @\libglobal{connect_t}@;
599599
inline constexpr connect_t @\libglobal{connect}@{};
@@ -664,6 +664,21 @@
664664
inline constexpr stopped_as_error_t @\libglobal{stopped_as_error}@{};
665665
inline constexpr associate_t @\libglobal{associate}@{};
666666
inline constexpr spawn_future_t @\libglobal{spawn_future}@{};
667+
}
668+
669+
namespace std::this_thread {
670+
// \ref{exec.consumers}, consumers
671+
struct @\libglobal{sync_wait_t}@ { @\unspec@ };
672+
struct @\libglobal{sync_wait_with_variant_t}@ { @\unspec@ };
673+
674+
inline constexpr sync_wait_t @\libglobal{sync_wait}@{};
675+
inline constexpr sync_wait_with_variant_t @\libglobal{sync_wait_with_variant}@{};
676+
}
677+
678+
namespace std::execution {
679+
// \ref{exec.consumers}, consumers
680+
struct @\libglobal{spawn_t}@ { @\unspec@ };
681+
inline constexpr spawn_t spawn{};
667682

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

678693
struct dependent_sender_error : exception {};
679694

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

684-
template<class Sndr, class... Env>
685-
requires @\libconcept{sender_in}@<Sndr, Env...>
686-
using completion_signatures_of_t = decltype(get_completion_signatures<Sndr, Env...>());
699+
// \ref{exec.env}, class template \tcode{env}
700+
template<@\exposconcept{queryable}@... Envs>
701+
struct env;
687702

688703
// \ref{exec.run.loop}, run_loop
689704
class run_loop;
690-
}
691-
692-
namespace std::this_thread {
693-
// \ref{exec.consumers}, consumers
694-
struct @\libglobal{sync_wait_t}@ { @\unspec@ };
695-
struct @\libglobal{sync_wait_with_variant_t}@ { @\unspec@ };
696-
697-
inline constexpr sync_wait_t @\libglobal{sync_wait}@{};
698-
inline constexpr sync_wait_with_variant_t @\libglobal{sync_wait_with_variant}@{};
699-
}
700-
701-
namespace std::execution {
702-
// \ref{exec.consumers}, consumers
703-
struct @\libglobal{spawn_t}@ { @\unspec@ };
704-
inline constexpr spawn_t spawn{};
705705

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

714-
// \ref{exec.scope.concepts}, scope concepts
715-
template<class Token>
716-
concept @\libconcept{scope_token}@ = @\seebelow@;
717-
718-
// \ref{exec.scope.simple.counting}, simple counting scope
719-
class simple_counting_scope;
720-
721-
// \ref{exec.scope.counting}, counting scope
722-
class counting_scope;
723-
}
724-
725-
namespace std::execution {
726-
// \ref{exec.par.scheduler}, parallel scheduler
727-
class @\libglobal{parallel_scheduler}@;
728-
parallel_scheduler get_parallel_scheduler();
729-
}
730-
731-
// \ref{exec.sysctxrepl}, namespace \tcode{system_context_replaceability}
732-
namespace std::execution::@\libglobal{system_context_replaceability}@ {
733-
struct receiver_proxy;
734-
struct bulk_item_receiver_proxy;
735-
struct parallel_scheduler_backend;
736-
737-
shared_ptr<parallel_scheduler_backend> query_parallel_scheduler_backend();
738-
}
739-
740-
namespace std::execution {
741714
// \ref{exec.affine.on}, coroutine utility \tcode{affine_on}
742715
struct @\libglobal{affine_on_t}@ { @\unspec@ };
743716
inline constexpr affine_on_t @\libglobal{affine_on}@{};
@@ -767,6 +740,29 @@
767740
// \ref{exec.task}, class template \tcode{task}
768741
template<class T, class Environment>
769742
class @\libglobal{task}@;
743+
744+
// \ref{exec.scope.concepts}, scope concepts
745+
template<class Token>
746+
concept @\libconcept{scope_token}@ = @\seebelow@;
747+
748+
// \ref{exec.scope.simple.counting}, simple counting scope
749+
class simple_counting_scope;
750+
751+
// \ref{exec.scope.counting}, counting scope
752+
class counting_scope;
753+
754+
// \ref{exec.par.scheduler}, parallel scheduler
755+
class @\libglobal{parallel_scheduler}@;
756+
parallel_scheduler get_parallel_scheduler();
757+
758+
// \ref{exec.sysctxrepl}, namespace \tcode{system_context_replaceability}
759+
namespace @\libglobal{system_context_replaceability}@ {
760+
struct receiver_proxy;
761+
struct bulk_item_receiver_proxy;
762+
struct parallel_scheduler_backend;
763+
764+
shared_ptr<parallel_scheduler_backend> query_parallel_scheduler_backend();
765+
}
770766
}
771767
\end{codeblock}
772768

0 commit comments

Comments
 (0)