|
434 | 434 | concept @\exposconceptnc{queryable}@ = @\seebelownc@; // \expos
|
435 | 435 |
|
436 | 436 | // \ref{exec.queries}, queries
|
437 |
| - struct forwarding_query_t { @\unspec@ }; |
438 |
| - struct get_allocator_t { @\unspec@ }; |
439 |
| - struct get_stop_token_t { @\unspec@ }; |
| 437 | + struct @\libglobal{forwarding_query_t}@ { @\unspec@ }; |
| 438 | + struct @\libglobal{get_allocator_t}@ { @\unspec@ }; |
| 439 | + struct @\libglobal{get_stop_token_t}@ { @\unspec@ }; |
440 | 440 |
|
441 |
| - inline constexpr forwarding_query_t forwarding_query{}; |
442 |
| - inline constexpr get_allocator_t get_allocator{}; |
443 |
| - inline constexpr get_stop_token_t get_stop_token{}; |
| 441 | + inline constexpr forwarding_query_t @\libglobal{forwarding_query}@{}; |
| 442 | + inline constexpr get_allocator_t @\libglobal{get_allocator}@{}; |
| 443 | + inline constexpr get_stop_token_t @\libglobal{get_stop_token}@{}; |
444 | 444 |
|
445 | 445 | template<class T>
|
446 | 446 | using stop_token_of_t = remove_cvref_t<decltype(get_stop_token(declval<T>()))>;
|
|
451 | 451 |
|
452 | 452 | namespace std::execution {
|
453 | 453 | // \ref{exec.queries}, queries
|
454 |
| - struct get_domain_t { @\unspec@ }; |
455 |
| - struct get_scheduler_t { @\unspec@ }; |
456 |
| - struct get_delegation_scheduler_t { @\unspec@ }; |
457 |
| - struct get_forward_progress_guarantee_t { @\unspec@ }; |
| 454 | + struct @\libglobal{get_domain_t}@ { @\unspec@ }; |
| 455 | + struct @\libglobal{get_scheduler_t}@ { @\unspec@ }; |
| 456 | + struct @\libglobal{get_delegation_scheduler_t}@ { @\unspec@ }; |
| 457 | + struct @\libglobal{get_forward_progress_guarantee_t}@ { @\unspec@ }; |
458 | 458 | template<class CPO>
|
459 |
| - struct get_completion_scheduler_t { @\unspec@ }; |
| 459 | + struct @\libglobal{get_completion_scheduler_t}@ { @\unspec@ }; |
460 | 460 |
|
461 |
| - inline constexpr get_domain_t get_domain{}; |
462 |
| - inline constexpr get_scheduler_t get_scheduler{}; |
463 |
| - inline constexpr get_delegation_scheduler_t get_delegation_scheduler{}; |
| 461 | + inline constexpr get_domain_t @\libglobal{get_domain}@{}; |
| 462 | + inline constexpr get_scheduler_t @\libglobal{get_scheduler}@{}; |
| 463 | + inline constexpr get_delegation_scheduler_t @\libglobal{get_delegation_scheduler}@{}; |
464 | 464 | enum class forward_progress_guarantee;
|
465 |
| - inline constexpr get_forward_progress_guarantee_t get_forward_progress_guarantee{}; |
| 465 | + inline constexpr get_forward_progress_guarantee_t @\libglobal{get_forward_progress_guarantee}@{}; |
466 | 466 | template<class CPO>
|
467 |
| - inline constexpr get_completion_scheduler_t<CPO> get_completion_scheduler{}; |
| 467 | + inline constexpr get_completion_scheduler_t<CPO> @\libglobal{get_completion_scheduler}@{}; |
468 | 468 |
|
469 |
| - struct empty_env {}; |
470 |
| - struct get_env_t { @\unspec@ }; |
471 |
| - inline constexpr get_env_t get_env{}; |
| 469 | + struct @\libglobal{empty_env}@ {}; |
| 470 | + struct @\libglobal{get_env_t}@ { @\unspec@ }; |
| 471 | + inline constexpr get_env_t @\libglobal{get_env}@{}; |
472 | 472 |
|
473 | 473 | template<class T>
|
474 |
| - using env_of_t = decltype(get_env(declval<T>())); |
| 474 | + using @\libglobal{env_of_t}@ = decltype(get_env(declval<T>())); |
475 | 475 |
|
476 | 476 | // \ref{exec.domain.default}, execution domains
|
477 | 477 | struct default_domain;
|
478 | 478 |
|
479 | 479 | // \ref{exec.sched}, schedulers
|
480 |
| - struct scheduler_t {}; |
| 480 | + struct @\libglobal{scheduler_t}@ {}; |
481 | 481 |
|
482 | 482 | template<class Sch>
|
483 | 483 | concept @\libconcept{scheduler}@ = @\seebelow@;
|
484 | 484 |
|
485 | 485 | // \ref{exec.recv}, receivers
|
486 |
| - struct receiver_t {}; |
| 486 | + struct @\libglobal{receiver_t}@ {}; |
487 | 487 |
|
488 | 488 | template<class Rcvr>
|
489 | 489 | concept @\libconcept{receiver}@ = @\seebelow@;
|
490 | 490 |
|
491 | 491 | template<class Rcvr, class Completions>
|
492 | 492 | concept @\libconcept{receiver_of}@ = @\seebelow@;
|
493 | 493 |
|
494 |
| - struct set_value_t { @\unspec@ }; |
495 |
| - struct set_error_t { @\unspec@ }; |
496 |
| - struct set_stopped_t { @\unspec@ }; |
| 494 | + struct @\libglobal{set_value_t}@ { @\unspec@ }; |
| 495 | + struct @\libglobal{set_error_t}@ { @\unspec@ }; |
| 496 | + struct @\libglobal{set_stopped_t}@ { @\unspec@ }; |
497 | 497 |
|
498 |
| - inline constexpr set_value_t set_value{}; |
499 |
| - inline constexpr set_error_t set_error{}; |
500 |
| - inline constexpr set_stopped_t set_stopped{}; |
| 498 | + inline constexpr set_value_t @\libglobal{set_value}@{}; |
| 499 | + inline constexpr set_error_t @\libglobal{set_error}@{}; |
| 500 | + inline constexpr set_stopped_t @\libglobal{set_stopped}@{}; |
501 | 501 |
|
502 | 502 | // \ref{exec.opstate}, operation states
|
503 |
| - struct operation_state_t {}; |
| 503 | + struct @\libglobal{operation_state_t}@ {}; |
504 | 504 |
|
505 | 505 | template<class O>
|
506 | 506 | concept @\libconcept{operation_state}@ = @\seebelow@;
|
507 | 507 |
|
508 |
| - struct start_t; |
509 |
| - inline constexpr start_t start{}; |
| 508 | + struct @\libglobal{start_t}@; |
| 509 | + inline constexpr start_t @\libglobal{start}@{}; |
510 | 510 |
|
511 | 511 | // \ref{exec.snd}, senders
|
512 |
| - struct sender_t {}; |
| 512 | + struct @\libglobal{sender_t}@ {}; |
513 | 513 |
|
514 | 514 | template<class Sndr>
|
515 | 515 | concept @\libconcept{sender}@ = @\seebelow@;
|
|
578 | 578 | Domain dom, Tag, Sndr&& sndr, Args&&... args) noexcept(@\seebelow@);
|
579 | 579 |
|
580 | 580 | // \ref{exec.connect}, the connect sender algorithm
|
581 |
| - struct connect_t; |
582 |
| - inline constexpr connect_t connect{}; |
| 581 | + struct @\libglobal{connect_t}@; |
| 582 | + inline constexpr connect_t @\libglobal{connect}@{}; |
583 | 583 |
|
584 | 584 | template<class Sndr, class Rcvr>
|
585 |
| - using connect_result_t = |
| 585 | + using @\libglobal{connect_result_t}@ = |
586 | 586 | decltype(connect(declval<Sndr>(), declval<Rcvr>()));
|
587 | 587 |
|
588 | 588 | // \ref{exec.factories}, sender factories
|
589 |
| - struct just_t { @\unspec@ }; |
590 |
| - struct just_error_t { @\unspec@ }; |
591 |
| - struct just_stopped_t { @\unspec@ }; |
592 |
| - struct schedule_t { @\unspec@ }; |
| 589 | + struct @\libglobal{just_t}@ { @\unspec@ }; |
| 590 | + struct @\libglobal{just_error_t}@ { @\unspec@ }; |
| 591 | + struct @\libglobal{just_stopped_t}@ { @\unspec@ }; |
| 592 | + struct @\libglobal{schedule_t}@ { @\unspec@ }; |
593 | 593 |
|
594 |
| - inline constexpr just_t just{}; |
595 |
| - inline constexpr just_error_t just_error{}; |
596 |
| - inline constexpr just_stopped_t just_stopped{}; |
597 |
| - inline constexpr schedule_t schedule{}; |
598 |
| - inline constexpr @\unspec@ read_env{}; |
| 594 | + inline constexpr just_t @\libglobal{just}@{}; |
| 595 | + inline constexpr just_error_t @\libglobal{just_error}@{}; |
| 596 | + inline constexpr just_stopped_t @\libglobal{just_stopped}@{}; |
| 597 | + inline constexpr schedule_t @\libglobal{schedule}@{}; |
| 598 | + inline constexpr @\unspec@ @\libglobal{read_env}@{}; |
599 | 599 |
|
600 | 600 | template<@\libconcept{scheduler}@ Sndr>
|
601 |
| - using schedule_result_t = decltype(schedule(declval<Sndr>())); |
| 601 | + using @\libglobal{schedule_result_t}@ = decltype(schedule(declval<Sndr>())); |
602 | 602 |
|
603 | 603 | // \ref{exec.adapt}, sender adaptors
|
604 | 604 | template<@\exposconcept{class-type}@ D>
|
605 |
| - struct sender_adaptor_closure { }; |
606 |
| - |
607 |
| - struct starts_on_t { @\unspec@ }; |
608 |
| - struct continues_on_t { @\unspec@ }; |
609 |
| - struct on_t { @\unspec@ }; |
610 |
| - struct schedule_from_t { @\unspec@ }; |
611 |
| - struct then_t { @\unspec@ }; |
612 |
| - struct upon_error_t { @\unspec@ }; |
613 |
| - struct upon_stopped_t { @\unspec@ }; |
614 |
| - struct let_value_t { @\unspec@ }; |
615 |
| - struct let_error_t { @\unspec@ }; |
616 |
| - struct let_stopped_t { @\unspec@ }; |
617 |
| - struct bulk_t { @\unspec@ }; |
618 |
| - struct split_t { @\unspec@ }; |
619 |
| - struct when_all_t { @\unspec@ }; |
620 |
| - struct when_all_with_variant_t { @\unspec@ }; |
621 |
| - struct into_variant_t { @\unspec@ }; |
622 |
| - struct stopped_as_optional_t { @\unspec@ }; |
623 |
| - struct stopped_as_error_t { @\unspec@ }; |
624 |
| - |
625 |
| - inline constexpr starts_on_t starts_on{}; |
626 |
| - inline constexpr continues_on_t continues_on{}; |
627 |
| - inline constexpr on_t on{}; |
628 |
| - inline constexpr schedule_from_t schedule_from{}; |
629 |
| - inline constexpr then_t then{}; |
630 |
| - inline constexpr upon_error_t upon_error{}; |
631 |
| - inline constexpr upon_stopped_t upon_stopped{}; |
632 |
| - inline constexpr let_value_t let_value{}; |
633 |
| - inline constexpr let_error_t let_error{}; |
634 |
| - inline constexpr let_stopped_t let_stopped{}; |
635 |
| - inline constexpr bulk_t bulk{}; |
636 |
| - inline constexpr split_t split{}; |
637 |
| - inline constexpr when_all_t when_all{}; |
638 |
| - inline constexpr when_all_with_variant_t when_all_with_variant{}; |
639 |
| - inline constexpr into_variant_t into_variant{}; |
640 |
| - inline constexpr stopped_as_optional_t stopped_as_optional{}; |
641 |
| - inline constexpr stopped_as_error_t stopped_as_error{}; |
| 605 | + struct @\libglobal{sender_adaptor_closure}@ { }; |
| 606 | + |
| 607 | + struct @\libglobal{starts_on_t}@ { @\unspec@ }; |
| 608 | + struct @\libglobal{continues_on_t}@ { @\unspec@ }; |
| 609 | + struct @\libglobal{on_t}@ { @\unspec@ }; |
| 610 | + struct @\libglobal{schedule_from_t}@ { @\unspec@ }; |
| 611 | + struct @\libglobal{then_t}@ { @\unspec@ }; |
| 612 | + struct @\libglobal{upon_error_t}@ { @\unspec@ }; |
| 613 | + struct @\libglobal{upon_stopped_t}@ { @\unspec@ }; |
| 614 | + struct @\libglobal{let_value_t}@ { @\unspec@ }; |
| 615 | + struct @\libglobal{let_error_t}@ { @\unspec@ }; |
| 616 | + struct @\libglobal{let_stopped_t}@ { @\unspec@ }; |
| 617 | + struct @\libglobal{bulk_t}@ { @\unspec@ }; |
| 618 | + struct @\libglobal{split_t}@ { @\unspec@ }; |
| 619 | + struct @\libglobal{when_all_t}@ { @\unspec@ }; |
| 620 | + struct @\libglobal{when_all_with_variant_t}@ { @\unspec@ }; |
| 621 | + struct @\libglobal{into_variant_t}@ { @\unspec@ }; |
| 622 | + struct @\libglobal{stopped_as_optional_t}@ { @\unspec@ }; |
| 623 | + struct @\libglobal{stopped_as_error_t}@ { @\unspec@ }; |
| 624 | + |
| 625 | + inline constexpr starts_on_t @\libglobal{starts_on}@{}; |
| 626 | + inline constexpr continues_on_t @\libglobal{continues_on}@{}; |
| 627 | + inline constexpr on_t @\libglobal{on}@{}; |
| 628 | + inline constexpr schedule_from_t @\libglobal{schedule_from}@{}; |
| 629 | + inline constexpr then_t @\libglobal{then}@{}; |
| 630 | + inline constexpr upon_error_t @\libglobal{upon_error}@{}; |
| 631 | + inline constexpr upon_stopped_t @\libglobal{upon_stopped}@{}; |
| 632 | + inline constexpr let_value_t @\libglobal{let_value}@{}; |
| 633 | + inline constexpr let_error_t @\libglobal{let_error}@{}; |
| 634 | + inline constexpr let_stopped_t @\libglobal{let_stopped}@{}; |
| 635 | + inline constexpr bulk_t @\libglobal{bulk}@{}; |
| 636 | + inline constexpr split_t @\libglobal{split}@{}; |
| 637 | + inline constexpr when_all_t @\libglobal{when_all}@{}; |
| 638 | + inline constexpr when_all_with_variant_t @\libglobal{when_all_with_variant}@{}; |
| 639 | + inline constexpr into_variant_t @\libglobal{into_variant}@{}; |
| 640 | + inline constexpr stopped_as_optional_t @\libglobal{stopped_as_optional}@{}; |
| 641 | + inline constexpr stopped_as_error_t @\libglobal{stopped_as_error}@{}; |
642 | 642 |
|
643 | 643 | // \ref{exec.util}, sender and receiver utilities
|
644 | 644 | // \ref{exec.util.cmplsig}
|
645 | 645 | template<class Fn>
|
646 | 646 | concept @\exposconceptnc{completion-signature}@ = @\seebelownc@; // \expos
|
647 | 647 |
|
648 | 648 | template<@\exposconcept{completion-signature}@... Fns>
|
649 |
| - struct completion_signatures {}; |
| 649 | + struct @\libglobal{completion_signatures}@ {}; |
650 | 650 |
|
651 | 651 | template<class Sigs>
|
652 | 652 | concept @\exposconceptnc{valid-completion-signatures}@ = @\seebelownc@; // \expos
|
|
679 | 679 |
|
680 | 680 | namespace std::this_thread {
|
681 | 681 | // \ref{exec.consumers}, consumers
|
682 |
| - struct sync_wait_t { @\unspec@ }; |
683 |
| - struct sync_wait_with_variant_t { @\unspec@ }; |
| 682 | + struct @\libglobal{sync_wait_t}@ { @\unspec@ }; |
| 683 | + struct @\libglobal{sync_wait_with_variant_t}@ { @\unspec@ }; |
684 | 684 |
|
685 |
| - inline constexpr sync_wait_t sync_wait{}; |
686 |
| - inline constexpr sync_wait_with_variant_t sync_wait_with_variant{}; |
| 685 | + inline constexpr sync_wait_t @\libglobal{sync_wait}@{}; |
| 686 | + inline constexpr sync_wait_with_variant_t @\libglobal{sync_wait_with_variant}@{}; |
687 | 687 | }
|
688 | 688 |
|
689 | 689 | namespace std::execution {
|
690 | 690 | // \ref{exec.as.awaitable}
|
691 |
| - struct as_awaitable_t { @\unspec@ }; |
692 |
| - inline constexpr as_awaitable_t as_awaitable{}; |
| 691 | + struct @\libglobal{as_awaitable_t}@ { @\unspec@ }; |
| 692 | + inline constexpr as_awaitable_t @\libglobal{as_awaitable}@{}; |
693 | 693 |
|
694 | 694 | // \ref{exec.with.awaitable.senders}
|
695 | 695 | template<@\exposconcept{class-type}@ Promise>
|
|
908 | 908 |
|
909 | 909 | \begin{codeblock}
|
910 | 910 | namespace std::execution {
|
911 |
| - enum class forward_progress_guarantee { |
| 911 | + enum class @\libglobal{forward_progress_guarantee}@ { |
912 | 912 | concurrent,
|
913 | 913 | parallel,
|
914 | 914 | weakly_parallel
|
|
2150 | 2150 | \pnum
|
2151 | 2151 | \begin{codeblock}
|
2152 | 2152 | namespace std::execution {
|
2153 |
| - struct default_domain { |
| 2153 | + struct @\libglobal{default_domain}@ { |
2154 | 2154 | template<@\libconcept{sender}@ Sndr, @\exposconcept{queryable}@... Env>
|
2155 | 2155 | requires (sizeof...(Env) <= 1)
|
2156 | 2156 | static constexpr @\libconcept{sender}@ decltype(auto) transform_sender(Sndr&& sndr, const Env&... env)
|
|
2169 | 2169 | \begin{itemdecl}
|
2170 | 2170 | template<@\libconcept{sender}@ Sndr, @\exposconcept{queryable}@... Env>
|
2171 | 2171 | requires (sizeof...(Env) <= 1)
|
2172 |
| -constexpr @\libconcept{sender}@ decltype(auto) transform_sender(Sndr&& sndr, const Env&... env) |
| 2172 | +constexpr @\libconcept{sender}@ decltype(auto) @\libmember{transform_sender}{default_domain}@(Sndr&& sndr, const Env&... env) |
2173 | 2173 | noexcept(@\seebelow@);
|
2174 | 2174 | \end{itemdecl}
|
2175 | 2175 |
|
|
2192 | 2192 |
|
2193 | 2193 | \begin{itemdecl}
|
2194 | 2194 | template<@\libconcept{sender}@ Sndr, @\exposconcept{queryable}@ Env>
|
2195 |
| - constexpr @\exposconcept{queryable}@ decltype(auto) transform_env(Sndr&& sndr, Env&& env) noexcept; |
| 2195 | + constexpr @\exposconcept{queryable}@ decltype(auto) @\libmember{transform_env}{default_domain}@(Sndr&& sndr, Env&& env) noexcept; |
2196 | 2196 | \end{itemdecl}
|
2197 | 2197 |
|
2198 | 2198 | \begin{itemdescr}
|
|
2215 | 2215 |
|
2216 | 2216 | \begin{itemdecl}
|
2217 | 2217 | template<class Tag, @\libconcept{sender}@ Sndr, class... Args>
|
2218 |
| -constexpr decltype(auto) apply_sender(Tag, Sndr&& sndr, Args&&... args) |
| 2218 | +constexpr decltype(auto) @\libmember{apply_sender}{default_domain}@(Tag, Sndr&& sndr, Args&&... args) |
2219 | 2219 | noexcept(@\seebelow@);
|
2220 | 2220 | \end{itemdecl}
|
2221 | 2221 |
|
|
2245 | 2245 | namespace std::execution {
|
2246 | 2246 | template<class Domain, @\libconcept{sender}@ Sndr, @\exposconcept{queryable}@... Env>
|
2247 | 2247 | requires (sizeof...(Env) <= 1)
|
2248 |
| - constexpr @\libconcept{sender}@ decltype(auto) transform_sender(Domain dom, Sndr&& sndr, const Env&... env) |
| 2248 | + constexpr @\libconcept{sender}@ decltype(auto) @\libglobal{transform_sender}@(Domain dom, Sndr&& sndr, const Env&... env) |
2249 | 2249 | noexcept(@\seebelow@);
|
2250 | 2250 | }
|
2251 | 2251 | \end{itemdecl}
|
|
2281 | 2281 | \begin{itemdecl}
|
2282 | 2282 | namespace std::execution {
|
2283 | 2283 | template<class Domain, @\libconcept{sender}@ Sndr, @\exposconcept{queryable}@ Env>
|
2284 |
| - constexpr @\exposconcept{queryable}@ decltype(auto) transform_env(Domain dom, Sndr&& sndr, Env&& env) noexcept; |
| 2284 | + constexpr @\exposconcept{queryable}@ decltype(auto) @\libglobal{transform_env}@(Domain dom, Sndr&& sndr, Env&& env) noexcept; |
2285 | 2285 | }
|
2286 | 2286 | \end{itemdecl}
|
2287 | 2287 |
|
|
2310 | 2310 | \begin{itemdecl}
|
2311 | 2311 | namespace std::execution {
|
2312 | 2312 | template<class Domain, class Tag, @\libconcept{sender}@ Sndr, class... Args>
|
2313 |
| - constexpr decltype(auto) apply_sender(Domain dom, Tag, Sndr&& sndr, Args&&... args) |
| 2313 | + constexpr decltype(auto) @\libglobal{apply_sender}@(Domain dom, Tag, Sndr&& sndr, Args&&... args) |
2314 | 2314 | noexcept(see below);
|
2315 | 2315 | }
|
2316 | 2316 | \end{itemdecl}
|
|
4971 | 4971 |
|
4972 | 4972 | \begin{codeblock}
|
4973 | 4973 | namespace std::execution {
|
4974 |
| - class run_loop { |
| 4974 | + class @\libglobal{run_loop}@ { |
4975 | 4975 | // \ref{exec.run.loop.types}, associated types
|
4976 | 4976 | class @\exposid{run-loop-scheduler}@; // \expos
|
4977 | 4977 | class @\exposid{run-loop-sender}@; // \expos
|
|
5401 | 5401 | \begin{codeblock}
|
5402 | 5402 | namespace std::execution {
|
5403 | 5403 | template<@\exposconcept{class-type}@ Promise>
|
5404 |
| - struct with_awaitable_senders { |
| 5404 | + struct @\libglobal{with_awaitable_senders}@ { |
5405 | 5405 | template<class OtherPromise>
|
5406 | 5406 | requires (!@\libconcept{same_as}@<OtherPromise, void>)
|
5407 | 5407 | void set_continuation(coroutine_handle<OtherPromise> h) noexcept;
|
|
5430 | 5430 | \begin{itemdecl}
|
5431 | 5431 | template<class OtherPromise>
|
5432 | 5432 | requires (!@\libconcept{same_as}@<OtherPromise, void>)
|
5433 |
| -void set_continuation(coroutine_handle<OtherPromise> h) noexcept; |
| 5433 | +void @\libmember{set_continuation}{with_awaitable_senders}@(coroutine_handle<OtherPromise> h) noexcept; |
5434 | 5434 | \end{itemdecl}
|
5435 | 5435 |
|
5436 | 5436 | \begin{itemdescr}
|
|
5452 | 5452 |
|
5453 | 5453 | \begin{itemdecl}
|
5454 | 5454 | template<class Value>
|
5455 |
| -@\exposid{call-result-t}@<as_awaitable_t, Value, Promise&> await_transform(Value&& value); |
| 5455 | +@\exposid{call-result-t}@<as_awaitable_t, Value, Promise&> @\libmember{await_transform}{with_awaitable_senders}@(Value&& value); |
5456 | 5456 | \end{itemdecl}
|
5457 | 5457 |
|
5458 | 5458 | \begin{itemdescr}
|
|
0 commit comments