{"title":"cpprefjp - C++\u65e5\u672c\u8a9e\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io"}},"updated":"2026-06-07T16:14:44.863074","id":"9578dd05-67b4-4e3a-bc4c-62b75dc6fad2","entry":[{"title":"sender -- execution\/sender: \u95a2\u9023\u9805\u76ee\u3092\u8abf\u6574(#1651)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/sender.html"}},"id":"b131ba66acc42664879c27bff3359eb22866442b:reference\/execution\/execution\/sender.md","updated":"2026-06-08T01:07:25+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/sender.md b\/reference\/execution\/execution\/sender.md\nindex d790f6c30..58654862c 100644\n--- a\/reference\/execution\/execution\/sender.md\n+++ b\/reference\/execution\/execution\/sender.md\n@@ -107,7 +107,6 @@ int main()\n \n ## \u95a2\u9023\u9805\u76ee\n - [`execution::sender_in`](sender_in.md)\n-- [`execution::sender-to`](sender-to.md)\n - [\u30b3\u30eb\u30fc\u30c1\u30f3](\/lang\/cpp20\/coroutines.md)\n \n \n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"receiver-of -- execution\/receiver-of: meta exposition-only\u30bf\u30b0\u8ffd\u52a0(#1651)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/receiver-of.html"}},"id":"73888e94e8ea40ad0b4e3e46a3a71383b6ad510d:reference\/execution\/execution\/receiver-of.md","updated":"2026-06-08T01:01:17+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/receiver-of.md b\/reference\/execution\/execution\/receiver-of.md\nindex bd4eeceda..a0720b991 100644\n--- a\/reference\/execution\/execution\/receiver-of.md\n+++ b\/reference\/execution\/execution\/receiver-of.md\n@@ -1,4 +1,5 @@\n # receiver-of\n+* [meta exposition-only]\n * execution[meta header]\n * concept[meta id-type]\n * std::execution[meta namespace]\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"execution -- execution: P4159R0\u5bfe\u5fdc(#1651)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution.html"}},"id":"f6a60a971ff049e187f9aba391233cbdc0952b67:reference\/execution\/execution.md","updated":"2026-06-08T00:58:39+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution.md b\/reference\/execution\/execution.md\nindex bb6efdb6a..d941f609b 100644\n--- a\/reference\/execution\/execution.md\n+++ b\/reference\/execution\/execution.md\n@@ -66,7 +66,6 @@ namespace std::execution {\n | \u540d\u524d | \u8aac\u660e | \u5bfe\u5fdc\u30d0\u30fc\u30b8\u30e7\u30f3 |\n |------|------|----------------|\n | [`execution::receiver`](execution\/receiver.md) | Receiver\u578b (concept) | C++26 |\n-| [`execution::receiver_of`](execution\/receiver_of.md) | \u6307\u5b9a\u5b8c\u4e86\u30b7\u30b0\u30cd\u30c1\u30e3\u96c6\u5408\u306b\u9069\u5408\u3059\u308bReceiver (concept) | C++26 |\n | [`execution::inlinable_receiver`](execution\/inlinable_receiver.md) | \u30a4\u30f3\u30e9\u30a4\u30f3\u5316\u53ef\u80fd\u306aReceiver (concept) | C++26 |\n | [`execution::set_value`](execution\/set_value.md) | \u5024\u5b8c\u4e86\u95a2\u6570 (customization point object) | C++26 |\n | [`execution::set_error`](execution\/set_error.md) | \u30a8\u30e9\u30fc\u5b8c\u4e86\u95a2\u6570 (customization point object) | C++26 |\n@@ -88,7 +87,6 @@ namespace std::execution {\n | [`execution::sender`](execution\/sender.md) | Sender\u578b (concept) | C++26 |\n | [`execution::sender_in`](execution\/sender_in.md) | \u6307\u5b9a\u74b0\u5883\u3067\u6709\u52b9\u306aSender (concept) | C++26 |\n | [`execution::dependent_sender`](execution\/dependent_sender.md) | \u4f9d\u5b58Sender (concept) | C++26 |\n-| [`execution::sender_to`](execution\/sender_to.md) | \u6307\u5b9aReceiver\u306b\u63a5\u7d9a\u53ef\u80fd\u306aSender (concept) | C++26 |\n | [`execution::value_types_of_t`](execution\/value_types_of_t.md) | Sender\u306e\u5024\u5b8c\u4e86\u30b7\u30b0\u30cd\u30c1\u30e3\u96c6\u5408\u304b\u3089\u6307\u5b9a\u64cd\u4f5c\u3067\u578b\u3092\u751f\u6210 (alias template) | C++26 |\n | [`execution::error_types_of_t`](execution\/error_types_of_t.md) | Sender\u306e\u30a8\u30e9\u30fc\u5b8c\u4e86\u30b7\u30b0\u30cd\u30c1\u30e3\u96c6\u5408\u304b\u3089\u6307\u5b9a\u64cd\u4f5c\u3067\u578b\u3092\u751f\u6210 (alias template) | C++26 |\n | [`execution::sends_stopped`](execution\/sends_stopped.md) | Sender\u304c\u505c\u6b62\u5b8c\u4e86\u3092\u9001\u4fe1\u3057\u3046\u308b\u304b\u5426\u304b (variable template) | C++26 |\n@@ -208,3 +206,4 @@ Sender\u30b3\u30f3\u30b7\u30e5\u30fc\u30de\u306f\u540d\u524d\u7a7a\u9593 `std::this_thread` \u304a\u3088\u3073\u540d\u524d\u7a7a\u9593\n - [P3826R5 Fix Sender Algorithm Customization](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3826r5.html)\n - [P3941R4 Scheduler Affinity](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3941r4.html)\n - [P4151R1 Rename `affine_on`](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p4151r1.pdf)\n+- [P4159R0 Make `sender_in` and `receiver_of` exposition-only](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p4159r0.html)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"as_awaitable -- execution: P4159R0\u5bfe\u5fdc(#1651)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/as_awaitable.html"}},"id":"f6a60a971ff049e187f9aba391233cbdc0952b67:reference\/execution\/execution\/as_awaitable.md","updated":"2026-06-08T00:58:39+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/as_awaitable.md b\/reference\/execution\/execution\/as_awaitable.md\nindex bddb5be51..72bbea58a 100644\n--- a\/reference\/execution\/execution\/as_awaitable.md\n+++ b\/reference\/execution\/execution\/as_awaitable.md\n@@ -65,7 +65,7 @@ namespace std::execution {\n   template&lt;class Sndr, class Promise&gt;\n   concept awaitable-sender =\n     single-sender&lt;Sndr, env_of_t&lt;Promise&gt;&gt; &amp;&amp;\n-    sender_to&lt;Sndr, typename sender-awaitable&lt;Sndr, Promise&gt;::awaitable-receiver&gt; &amp;&amp;  \/\/ see below\n+    sender-to&lt;Sndr, typename sender-awaitable&lt;Sndr, Promise&gt;::awaitable-receiver&gt; &amp;&amp;  \/\/ see below\n     requires (Promise&amp; p) {\n       { p.unhandled_stopped() } -&gt; convertible_to&lt;coroutine_handle&lt;&gt;&gt;;\n     };\n@@ -73,7 +73,7 @@ namespace std::execution {\n ```\n * single-sender[link single-sender.md]\n * env_of_t[link env_of_t.md]\n-* sender_to[link sender_to.md]\n+* sender-to[link sender-to.md]\n * coroutine_handle&lt;&gt;[link \/reference\/coroutine\/coroutine_handle.md]\n \n ### \u30b3\u30f3\u30bb\u30d7\u30c8`has-queryable-await-completion-adaptor`\n@@ -262,3 +262,4 @@ value-type await_resume();\n - [LWG4133 `awaitable-receiver`&#39;s members are potentially throwing](https:\/\/cplusplus.github.io\/LWG\/issue4133)\n - [LWG4361 `awaitable-receiver::set_value` should use Mandates instead of constraints](https:\/\/cplusplus.github.io\/LWG\/issue4361)\n - [P3941R4 Scheduler Affinity](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3941r4.html)\n+- [P4159R0 Make `sender_in` and `receiver_of` exposition-only](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p4159r0.html)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"connect -- execution: P4159R0\u5bfe\u5fdc(#1651)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/connect.html"}},"id":"f6a60a971ff049e187f9aba391233cbdc0952b67:reference\/execution\/execution\/connect.md","updated":"2026-06-08T00:58:39+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/connect.md b\/reference\/execution\/execution\/connect.md\nindex d4ae84601..36bb6585b 100644\n--- a\/reference\/execution\/execution\/connect.md\n+++ b\/reference\/execution\/execution\/connect.md\n@@ -38,7 +38,7 @@ transform_sender(sndr, get_env(rcvr))\n \u3053\u306e\u3068\u304d\u4e0b\u8a18\u304c\u5168\u3066`true`\u3067\u3042\u308b\u3053\u3068\u3002\n \n - [`sender_in`](sender_in.md)`&lt;Sndr,` [`env_of_t`](env_of_t.md)`&lt;Rcvr&gt;&gt;`\n-- [`receiver_of`](receiver_of.md)`&lt;Rcvr,` [`completion_signatures_of_t`](completion_signatures_of_t.md)`&lt;Sndr,` [`env_of_t`](env_of_t.md)`&lt;Rcvr&gt;&gt;&gt;`\n+- [`receiver-of`](receiver-of.md)`&lt;Rcvr,` [`completion_signatures_of_t`](completion_signatures_of_t.md)`&lt;Sndr,` [`env_of_t`](env_of_t.md)`&lt;Rcvr&gt;&gt;&gt;`\n \n \u4e0b\u8a18\u3092\u6e80\u305f\u3059\u53f3\u8fba\u5024\u5f0f`rcvr2`\u304c\u5b58\u5728\u3059\u308b\u3068\u304d\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u4e0d\u9069\u683c(\u8a3a\u65ad\u4e0d\u8981)\u3068\u306a\u308b\u3002\n \n@@ -156,7 +156,7 @@ namespace std::execution {\n     return awaiter{fn};\n   }\n \n-  operation-state-task connect-awaitable(DS sndr, DR rcvr) requires receiver_of&lt;DR, Sigs&gt; {\n+  operation-state-task connect-awaitable(DS sndr, DR rcvr) requires receiver-of&lt;DR, Sigs&gt; {\n     exception_ptr ep;\n     try {\n       if constexpr (same_as&lt;V, void&gt;) {\n@@ -174,7 +174,7 @@ namespace std::execution {\n ```\n * coroutine_handle&lt;&gt;[link \/reference\/coroutine\/coroutine_handle.md]\n * unreachable()[link \/reference\/utility\/unreachable.md]\n-* receiver_of[link receiver_of.md]\n+* receiver-of[link receiver-of.md]\n * exception_ptr[link \/reference\/exception\/exception_ptr.md]\n * set_value[link set_value.md]\n * set_error[link set_error.md]\n@@ -255,3 +255,4 @@ int main()\n - [P3388R3 When Do You Know connect Doesn&#39;t Throw?](https:\/\/open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2025\/p3388r3.pdf)\n - [LWG 4208. Wording needs to ensure that in `connect(sndr, rcvr)` that `rcvr` expression is only evaluated once](https:\/\/cplusplus.github.io\/LWG\/issue4208)\n - [P3826R5 Fix Sender Algorithm Customization](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3826r5.html)\n+- [P4159R0 Make `sender_in` and `receiver_of` exposition-only](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p4159r0.html)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"get_start_scheduler -- execution: P4159R0\u5bfe\u5fdc(#1651)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/get_start_scheduler.html"}},"id":"f6a60a971ff049e187f9aba391233cbdc0952b67:reference\/execution\/execution\/get_start_scheduler.md","updated":"2026-06-08T00:58:39+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/get_start_scheduler.md b\/reference\/execution\/execution\/get_start_scheduler.md\nindex f184e0d49..2c38a7a77 100644\n--- a\/reference\/execution\/execution\/get_start_scheduler.md\n+++ b\/reference\/execution\/execution\/get_start_scheduler.md\n@@ -32,7 +32,7 @@ namespace std::execution {\n const\u4fee\u98fe[\u30af\u30a8\u30ea\u53ef\u80fd\u30aa\u30d6\u30b8\u30a7\u30af\u30c8](..\/queryable.md)`cenv`\u306b\u5bfe\u3057\u3066\u5f0f`cenv.query(get_start_scheduler)`\u304c\u547c\u3073\u51fa\u3055\u308c\u308b\u3002\n \u3053\u306e\u3068\u304d\u3001`noexcept(cenv.query(get_start_scheduler)) == true`\u3067\u3042\u308b\u3053\u3068\u3002\n \n-[`sender_to`](sender_to.md)`&lt;decltype((sndr)), decltype((rcvr))&gt;`\u304c`true`\u304b\u3064\u5f0f`get_start_scheduler(`[`get_env`](get_env.md)`(rcvr))`\u304c\u9069\u683c\u3068\u306a\u308b\u5f0f`sndr`\u3068`rcvr`\u306b\u5bfe\u3057\u3066\u3001[`connect`](connect.md)`(sndr, rcvr)`\u306e\u547c\u3073\u51fa\u3057\u7d50\u679c\u3067\u3042\u308b[Operation State](operation_state.md)\u304c[\u958b\u59cb(start)](start.md)\u3055\u308c\u308b\u5834\u5408\u3001[Scheduler](scheduler.md)`get_start_scheduler(`[`get_env`](get_env.md)`(rcvr))`\u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u5b9f\u884c\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u4e0a\u3067\u958b\u59cb\u3055\u308c\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u3002\n+[`sender-to`](sender-to.md)`&lt;decltype((sndr)), decltype((rcvr))&gt;`\u304c`true`\u304b\u3064\u5f0f`get_start_scheduler(`[`get_env`](get_env.md)`(rcvr))`\u304c\u9069\u683c\u3068\u306a\u308b\u5f0f`sndr`\u3068`rcvr`\u306b\u5bfe\u3057\u3066\u3001[`connect`](connect.md)`(sndr, rcvr)`\u306e\u547c\u3073\u51fa\u3057\u7d50\u679c\u3067\u3042\u308b[Operation State](operation_state.md)\u304c[\u958b\u59cb(start)](start.md)\u3055\u308c\u308b\u5834\u5408\u3001[Scheduler](scheduler.md)`get_start_scheduler(`[`get_env`](get_env.md)`(rcvr))`\u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u5b9f\u884c\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u4e0a\u3067\u958b\u59cb\u3055\u308c\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u3002\n \n \n ## \u30d0\u30fc\u30b8\u30e7\u30f3\n@@ -52,3 +52,4 @@ const\u4fee\u98fe[\u30af\u30a8\u30ea\u53ef\u80fd\u30aa\u30d6\u30b8\u30a7\u30af\u30c8](..\/queryable.md)`cenv`\u306b\u5bfe\u3057\n \n ## \u53c2\u7167\n - [P3941R4 Scheduler Affinity](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3941r4.html)\n+- [P4159R0 Make `sender_in` and `receiver_of` exposition-only](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p4159r0.html)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"inline_scheduler -- execution: P4159R0\u5bfe\u5fdc(#1651)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/inline_scheduler.html"}},"id":"f6a60a971ff049e187f9aba391233cbdc0952b67:reference\/execution\/execution\/inline_scheduler.md","updated":"2026-06-08T00:58:39+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/inline_scheduler.md b\/reference\/execution\/execution\/inline_scheduler.md\nindex 2a886291a..bf38adbb6 100644\n--- a\/reference\/execution\/execution\/inline_scheduler.md\n+++ b\/reference\/execution\/execution\/inline_scheduler.md\n@@ -35,7 +35,7 @@ namespace std::execution {\n \n \u8aac\u660e\u5c02\u7528\u306e\u30af\u30e9\u30b9`inline-sender`\u3092[`sender`](sender.md)\u3092\u6e80\u305f\u3059\u578b\u3068\u3059\u308b\u3002[`completion_signatures_of_t`](completion_signatures_of_t.md)`&lt;inline-sender&gt;`\u306f\u3001[`completion_signatures`](completion_signatures.md)`&lt;`[`set_value_t`](set_value.md)`()&gt;`\u3068\u306a\u308b\u3002\n \n-\u8aac\u660e\u7528\u306e`sndr`\u3092`inline-sender`\u578b\u306e\u5f0f\u3068\u3059\u308b\u3002`CS`\u3092[`completion_signatures`](completion_signatures.md)`&lt;`[`set_value_t`](set_value.md)`()&gt;`\u3068\u3057\u305f\u3068\u304d\u3001`rcvr`\u3092[`receiver_of`](receiver_of.md)`&lt;decltype((rcvr)), CS&gt;`\u304c`true`\u3068\u306a\u308b\u5f0f\u3068\u3059\u308b\u3002\u5f0f[`connect`](connect.md)`(sndr, rcvr)`\u306e\u578b\u306f`inline-state&lt;`[`remove_cvref_t`](\/reference\/type_traits\/remove_cvref.md)`&lt;decltype((rcvr))&gt;&gt;`\u3067\u3042\u308a\u3001\u5f0f`((void)sndr, auto(rcvr))`\u304c\u6f5c\u5728\u7684\u306b\u4f8b\u5916\u9001\u51fa(potentially-throwing)\u3059\u308b\u3068\u304d\u306b\u9650\u3063\u3066\u6f5c\u5728\u7684\u306b\u4f8b\u5916\u9001\u51fa\u3059\u308b\u3002\n+\u8aac\u660e\u7528\u306e`sndr`\u3092`inline-sender`\u578b\u306e\u5f0f\u3068\u3059\u308b\u3002`CS`\u3092[`completion_signatures`](completion_signatures.md)`&lt;`[`set_value_t`](set_value.md)`()&gt;`\u3068\u3057\u305f\u3068\u304d\u3001`rcvr`\u3092[`receiver-of`](receiver-of.md)`&lt;decltype((rcvr)), CS&gt;`\u304c`true`\u3068\u306a\u308b\u5f0f\u3068\u3059\u308b\u3002\u5f0f[`connect`](connect.md)`(sndr, rcvr)`\u306e\u578b\u306f`inline-state&lt;`[`remove_cvref_t`](\/reference\/type_traits\/remove_cvref.md)`&lt;decltype((rcvr))&gt;&gt;`\u3067\u3042\u308a\u3001\u5f0f`((void)sndr, auto(rcvr))`\u304c\u6f5c\u5728\u7684\u306b\u4f8b\u5916\u9001\u51fa(potentially-throwing)\u3059\u308b\u3068\u304d\u306b\u9650\u3063\u3066\u6f5c\u5728\u7684\u306b\u4f8b\u5916\u9001\u51fa\u3059\u308b\u3002\n \n \u8aac\u660e\u7528\u306e`o`\u3092`inline-state&lt;Rcvr&gt;`\u578b\u306e\u975econst\u5de6\u8fba\u5024\u3068\u3057\u3001`REC(o)`\u3092`o`\u3092\u8fd4\u3059[\u63a5\u7d9a(connect)](connect.md)\u547c\u3073\u51fa\u3057\u3078\u6e21\u3057\u305f\u5f0f`rcvr`\u3067\u521d\u671f\u5316\u3055\u308c\u305f`Rcvr`\u578b\u306e\u975econst\u5de6\u8fba\u5024\u53c2\u7167\u3068\u3059\u308b\u3002\n \n@@ -115,4 +115,5 @@ task\n ## \u53c2\u7167\n - [P3552R3 Add a Coroutine Task Type](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2025\/p3552r3.html)\n - [P3826R5 Fix Sender Algorithm Customization](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3826r5.html)\n+- [P4159R0 Make `sender_in` and `receiver_of` exposition-only](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p4159r0.html)\n - C++now 2025, [Getting The Lazy Task Done](https:\/\/schedule.cppnow.org\/wp-content\/uploads\/2025\/03\/Getting_The_Lazy_Task_Done.pdf)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"receiver-of -- execution: P4159R0\u5bfe\u5fdc(#1651)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/receiver-of.html"}},"id":"f6a60a971ff049e187f9aba391233cbdc0952b67:reference\/execution\/execution\/receiver-of.md","updated":"2026-06-08T00:58:39+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/receiver-of.md b\/reference\/execution\/execution\/receiver-of.md\nnew file mode 100644\nindex 000000000..bd4eeceda\n--- \/dev\/null\n+++ b\/reference\/execution\/execution\/receiver-of.md\n@@ -0,0 +1,50 @@\n+# receiver-of\n+* execution[meta header]\n+* concept[meta id-type]\n+* std::execution[meta namespace]\n+* cpp26[meta cpp]\n+\n+```cpp\n+namespace std::execution {\n+  template&lt;class Rcvr, class Completions&gt;\n+  concept receiver-of =\n+    receiver&lt;Rcvr&gt; &amp;&amp; has-completions&lt;Rcvr, Completions&gt;;\n+}\n+```\n+* receiver&lt;Rcvr&gt;[link receiver.md]\n+\n+## \u6982\u8981\n+`receiver-of`\u306f\u3001[Receiver\u578b](receiver.md)`Rcvr`\u304c[\u5b8c\u4e86\u30b7\u30b0\u30cd\u30c1\u30e3\u96c6\u5408](completion_signatures.md)`Completions`\u306b\u9069\u5408\u3059\u308b\u3053\u3068\u3092\u8868\u3059\u8aac\u660e\u5c02\u7528\u306e\u30b3\u30f3\u30bb\u30d7\u30c8\u3067\u3042\u308b\u3002\n+\n+\n+## \u8981\u4ef6\n+\u8aac\u660e\u5c02\u7528\u30b3\u30f3\u30bb\u30d7\u30c8`valid-completion-for`, `has-completions`\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5b9a\u7fa9\u3059\u308b\u3002\n+\n+```cpp\n+template&lt;class Signature, class Rcvr&gt;\n+concept valid-completion-for =\n+  requires (Signature* sig) {\n+    []&lt;class Tag, class... Args&gt;(Tag(*)(Args...))\n+      requires callable&lt;Tag, remove_cvref_t&lt;Rcvr&gt;, Args...&gt;\n+    {}(sig);\n+  };\n+\n+template&lt;class Rcvr, class Completions&gt;\n+concept has-completions =\n+  requires (Completions* completions) {\n+    []&lt;valid-completion-for&lt;Rcvr&gt;...Sigs&gt;(completion_signatures&lt;Sigs...&gt;*)\n+    {}(completions);\n+  };\n+```\n+* callable[link \/reference\/functional\/callable.md]\n+* completion_signatures[link completion_signatures.md]\n+\n+\n+## \u30d0\u30fc\u30b8\u30e7\u30f3\n+### \u8a00\u8a9e\n+- C++26\n+\n+\n+## \u53c2\u7167\n+- [P2300R10 `std::execution`](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2024\/p2300r10.html)\n+- [P4159R0 Make `sender_in` and `receiver_of` exposition-only](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p4159r0.html)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"receiver -- execution: P4159R0\u5bfe\u5fdc(#1651)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/receiver.html"}},"id":"f6a60a971ff049e187f9aba391233cbdc0952b67:reference\/execution\/execution\/receiver.md","updated":"2026-06-08T00:58:39+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/receiver.md b\/reference\/execution\/execution\/receiver.md\nindex 6cd1942c3..e09023aa0 100644\n--- a\/reference\/execution\/execution\/receiver.md\n+++ b\/reference\/execution\/execution\/receiver.md\n@@ -75,10 +75,6 @@ int main()\n - [Visual C++](\/implementation.md#visual_cpp): ??\n \n \n-## \u95a2\u9023\u9805\u76ee\n-- [`execution::receiver_of`](receiver_of.md)\n-\n-\n ## \u53c2\u7167\n - [P2300R10 `std::execution`](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2024\/p2300r10.html)\n - [P3388R3 When Do You Know connect Doesn&#39;t Throw?](https:\/\/open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2025\/p3388r3.pdf)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"receiver_of.md -- execution: P4159R0\u5bfe\u5fdc(#1651)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/receiver_of.html"}},"id":"f6a60a971ff049e187f9aba391233cbdc0952b67:reference\/execution\/execution\/receiver_of.md","updated":"2026-06-08T00:58:39+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/receiver_of.md b\/reference\/execution\/execution\/receiver_of.md\ndeleted file mode 100644\nindex fa3cf9514..000000000\n--- a\/reference\/execution\/execution\/receiver_of.md\n+++ \/dev\/null\n@@ -1,112 +0,0 @@\n-# receiver_of\n-* execution[meta header]\n-* concept[meta id-type]\n-* std::execution[meta namespace]\n-* cpp26[meta cpp]\n-\n-```cpp\n-namespace std::execution {\n-  template&lt;class Rcvr, class Completions&gt;\n-  concept receiver_of;\n-}\n-```\n-\n-## \u6982\u8981\n-`receiver_of`\u306f\u3001[Receiver\u578b](receiver.md)`Rcvr`\u304c[\u5b8c\u4e86\u30b7\u30b0\u30cd\u30c1\u30e3\u96c6\u5408](completion_signatures.md)`Completions`\u306b\u9069\u5408\u3059\u308b\u3053\u3068\u3092\u8868\u3059\u30b3\u30f3\u30bb\u30d7\u30c8\u3067\u3042\u308b\u3002\n-\n-\n-## \u8981\u4ef6\n-\u8aac\u660e\u5c02\u7528\u30b3\u30f3\u30bb\u30d7\u30c8`valid-completion-for`, `has-completions`\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5b9a\u7fa9\u3059\u308b\u3002\n-\n-```cpp\n-template&lt;class Signature, class Rcvr&gt;\n-concept valid-completion-for =\n-  requires (Signature* sig) {\n-    []&lt;class Tag, class... Args&gt;(Tag(*)(Args...))\n-      requires callable&lt;Tag, remove_cvref_t&lt;Rcvr&gt;, Args...&gt;\n-    {}(sig);\n-  };\n-\n-template&lt;class Rcvr, class Completions&gt;\n-concept has-completions =\n-  requires (Completions* completions) {\n-    []&lt;valid-completion-for&lt;Rcvr&gt;...Sigs&gt;(completion_signatures&lt;Sigs...&gt;*)\n-    {}(completions);\n-  };\n-```\n-* callable[link \/reference\/functional\/callable.md]\n-* completion_signatures[link completion_signatures.md]\n-\n-`receiver_of`\u30b3\u30f3\u30bb\u30d7\u30c8\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5b9a\u7fa9\u3055\u308c\u308b\u3002\n-\n-```cpp\n-template&lt;class Rcvr, class Completions&gt;\n-concept receiver_of =\n-  receiver&lt;Rcvr&gt; &amp;&amp; has-completions&lt;Rcvr, Completions&gt;;\n-```\n-* receiver&lt;Rcvr&gt;[link receiver.md]\n-\n-\n-## \u4f8b\n-```cpp example\n-#include &lt;execution&gt;\n-namespace ex = std::execution;\n-\n-struct MyReceiver {\n-  using receiver_concept = ex::receiver_t;\n-\n-  void set_value(int, int) &amp;&amp; noexcept;\n-  void set_error(int) &amp;&amp; noexcept;\n-};\n-\n-int main()\n-{\n-  \/\/ \u5024\u5b8c\u4e86\u64cd\u4f5cset_value(int, int)\u306b\u5bfe\u5fdc\n-  static_assert(ex::receiver_of&lt;MyReceiver,\n-    ex::completion_signatures&lt;ex::set_value_t(int, int)&gt;&gt;);\n-\n-  \/\/ \u5024\u5b8c\u4e86\u64cd\u4f5cset_value(int)\u306b\u306f\u975e\u5bfe\u5fdc\n-  static_assert(not ex::receiver_of&lt;MyReceiver,\n-    ex::completion_signatures&lt;ex::set_value_t(int)&gt;&gt;);\n-\n-  \/\/ \u30a8\u30e9\u30fc\u5b8c\u4e86\u64cd\u4f5cset_error(int)\u306b\u5bfe\u5fdc\n-  static_assert(ex::receiver_of&lt;MyReceiver,\n-    ex::completion_signatures&lt;ex::set_error_t(int)&gt;&gt;);\n-\n-  \/\/ \u505c\u6b62\u5b8c\u4e86\u64cd\u4f5cset_stopped()\u306b\u306f\u975e\u5bfe\u5fdc\n-  static_assert(not ex::receiver_of&lt;MyReceiver,\n-    ex::completion_signatures&lt;ex::set_stopped_t()&gt;&gt;);\n-}\n-```\n-* ex::receiver_of[color ff0000]\n-* ex::receiver_t[link receiver.md]\n-* ex::completion_signatures[link completion_signatures.md]\n-* ex::set_value_t[link set_value.md]\n-* ex::set_error_t[link set_error.md]\n-* ex::set_stopped_t[link set_stopped.md]\n-\n-### \u51fa\u529b\n-```\n-```\n-\n-\n-## \u30d0\u30fc\u30b8\u30e7\u30f3\n-### \u8a00\u8a9e\n-- C++26\n-\n-### \u51e6\u7406\u7cfb\n-- [Clang](\/implementation.md#clang): ??\n-- [GCC](\/implementation.md#gcc): ??\n-- [ICC](\/implementation.md#icc): ??\n-- [Visual C++](\/implementation.md#visual_cpp): ??\n-\n-\n-## \u95a2\u9023\u9805\u76ee\n-- [`execution::receiver`](receiver.md)\n-- [`execution::set_value`](set_value.md)\n-- [`execution::set_error`](set_error.md)\n-- [`execution::set_stopped`](set_stopped.md)\n-\n-\n-## \u53c2\u7167\n-- [P2300R10 `std::execution`](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2024\/p2300r10.html)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"run-loop-sender -- execution: P4159R0\u5bfe\u5fdc(#1651)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/run_loop\/run-loop-sender.html"}},"id":"f6a60a971ff049e187f9aba391233cbdc0952b67:reference\/execution\/execution\/run_loop\/run-loop-sender.md","updated":"2026-06-08T00:58:39+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/run_loop\/run-loop-sender.md b\/reference\/execution\/execution\/run_loop\/run-loop-sender.md\nindex 275efe101..182f7e4a5 100644\n--- a\/reference\/execution\/execution\/run_loop\/run-loop-sender.md\n+++ b\/reference\/execution\/execution\/run_loop\/run-loop-sender.md\n@@ -19,7 +19,7 @@ class run-loop-sender;  \/\/ exposition only\n     - [`unstoppable_token`](\/reference\/stop_token\/unstoppable_token.md)`&lt;`[`stop_token_of_t`](..\/..\/stop_token_of_t.md)`&lt;E&gt;&gt;`\u304c`true`\u306e\u3068\u304d\u3001[`completion_signatures`](..\/completion_signatures.md)`&lt;`[`set_value_t`](..\/set_value.md)`()&gt;`\n     - \u305d\u3046\u3067\u306a\u3051\u308c\u3070\u3001[`completion_signatures`](..\/completion_signatures.md)`&lt;`[`set_value_t`](..\/set_value.md)`(),` [`set_stopped_t`](..\/set_stopped.md)`()&gt;`\n - `run-loop-sender`\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306f\u3001\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f[`run_loop`](..\/run_loop.md)\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u751f\u5b58\u671f\u9593(lifetime)\u7d42\u4e86\u307e\u3067\u6709\u52b9\u3002\n-- \u8aac\u660e\u7528\u306e\u5f0f`sndr`\u306e\u578b\u3092`run-loop-sender`\u3001`CS`\u304c\u4e0a\u8a18[`completion_signatures`](..\/completion_signatures.md)\u306e\u7279\u6b8a\u5316\u3067\u3042\u308b\u3068\u304d[`receiver_of`](..\/receiver_of.md)`&lt;decltype((rcvr)), CS&gt;`\u304c`true`\u3068\u306a\u308b\u5f0f`rcvr`\u3068\u3057\u305f\u3068\u304d\u3001\n+- \u8aac\u660e\u7528\u306e\u5f0f`sndr`\u306e\u578b\u3092`run-loop-sender`\u3001`CS`\u304c\u4e0a\u8a18[`completion_signatures`](..\/completion_signatures.md)\u306e\u7279\u6b8a\u5316\u3067\u3042\u308b\u3068\u304d[`receiver-of`](..\/receiver-of.md)`&lt;decltype((rcvr)), CS&gt;`\u304c`true`\u3068\u306a\u308b\u5f0f`rcvr`\u3068\u3057\u305f\u3068\u304d\u3001\n     - \u5f0f[`connect`](..\/connect.md)`(sndr, rcvr)`\u306e\u578b\u306f[`run-loop-opstate`](run-loop-opstate.md)`&lt;`[`decay_t`](\/reference\/type_traits\/decay.md)`&lt;decltype((rcvr))&gt;&gt;`\u3067\u3042\u308a\u3001\u6f5c\u5728\u7684\u306a\u4f8b\u5916\u9001\u51fa(potentially-throwing)\u306f\u5f0f`(void(sndr), auto(rcvr))`\u306b\u5f93\u3046\u3002\n     - \u5b8c\u4e86\u30bf\u30b0`C`\u3092[`set_value_t`](..\/set_value.md)\u307e\u305f\u306f[`set_stopped_t`](..\/set_stopped.md)\u3068\u3057\u305f\u3068\u304d\u3001\u5f0f[`get_completion_scheduler`](..\/get_completion_scheduler.md)`&lt;C&gt;(`[`get_env`](..\/get_env.md)`(sndr))`\u306e\u6f5c\u5728\u7684\u306a\u4f8b\u5916\u9001\u51fa\u306f`sndr`\u306b\u5f93\u3046\u3002\u5f0f\u306e\u578b\u306f[`run-loop-scheduler`](run-loop-scheduler.md)\u3068\u306a\u308a\u3001\u305d\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306f\u540c\u4e00`sndr`\u304b\u3089\u53d6\u5f97\u3055\u308c\u305f\u5834\u5408\u306b\u7b49\u3057\u304f\u306a\u308b\u3002\n \n@@ -39,3 +39,4 @@ class run-loop-sender;  \/\/ exposition only\n - [P2300R10 `std::execution`](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2024\/p2300r10.html)\n - [P3557R3 High-Quality Sender Diagnostics with Constexpr Exceptions](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2025\/p3557r3.html)\n - [P3941R4 Scheduler Affinity](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3941r4.html)\n+- [P4159R0 Make `sender_in` and `receiver_of` exposition-only](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p4159r0.html)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"sender-to -- execution: P4159R0\u5bfe\u5fdc(#1651)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/sender-to.html"}},"id":"f6a60a971ff049e187f9aba391233cbdc0952b67:reference\/execution\/execution\/sender-to.md","updated":"2026-06-08T00:58:39+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/sender-to.md b\/reference\/execution\/execution\/sender-to.md\nnew file mode 100644\nindex 000000000..88ddea204\n--- \/dev\/null\n+++ b\/reference\/execution\/execution\/sender-to.md\n@@ -0,0 +1,36 @@\n+# sender-to\n+* [meta exposition-only]\n+* execution[meta header]\n+* concept[meta id-type]\n+* std::execution[meta namespace]\n+* cpp26[meta cpp]\n+\n+```cpp\n+namespace std::execution {\n+  template&lt;class Sndr, class Rcvr&gt;\n+  concept sender-to =\n+    sender_in&lt;Sndr, env_of_t&lt;Rcvr&gt;&gt; &amp;&amp;\n+    receiver-of&lt;Rcvr, completion_signatures_of_t&lt;Sndr, env_of_t&lt;Rcvr&gt;&gt;&gt; &amp;&amp;\n+    requires (Sndr&amp;&amp; sndr, Rcvr&amp;&amp; rcvr) {\n+      connect(std::forward&lt;Sndr&gt;(sndr), std::forward&lt;Rcvr&gt;(rcvr));\n+    };\n+}\n+```\n+* sender_in[link sender_in.md]\n+* env_of_t[link env_of_t.md]\n+* receiver-of[link receiver-of.md]\n+* completion_signatures_of_t[link completion_signatures_of_t.md]\n+* connect[link connect.md]\n+\n+## \u6982\u8981\n+`sender-to`\u306f\u3001[Sender\u578b](sender.md)`Sndr`\u304c[Receiver\u578b](receiver.md)`Rcvr`\u3068\u63a5\u7d9a\u53ef\u80fd\u3067\u3042\u308b\u3053\u3068\u3092\u8868\u3059\u8aac\u660e\u5c02\u7528\u306e\u30b3\u30f3\u30bb\u30d7\u30c8\u3067\u3042\u308b\u3002\n+\n+\n+## \u30d0\u30fc\u30b8\u30e7\u30f3\n+### \u8a00\u8a9e\n+- C++26\n+\n+\n+## \u53c2\u7167\n+- [P2300R10 `std::execution`](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2024\/p2300r10.html)\n+- [P4159R0 Make `sender_in` and `receiver_of` exposition-only](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p4159r0.html)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"sender -- execution: P4159R0\u5bfe\u5fdc(#1651)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/sender.html"}},"id":"f6a60a971ff049e187f9aba391233cbdc0952b67:reference\/execution\/execution\/sender.md","updated":"2026-06-08T00:58:39+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/sender.md b\/reference\/execution\/execution\/sender.md\nindex e915cd2c3..d790f6c30 100644\n--- a\/reference\/execution\/execution\/sender.md\n+++ b\/reference\/execution\/execution\/sender.md\n@@ -107,10 +107,11 @@ int main()\n \n ## \u95a2\u9023\u9805\u76ee\n - [`execution::sender_in`](sender_in.md)\n-- [`execution::sender_to`](sender_to.md)\n+- [`execution::sender-to`](sender-to.md)\n - [\u30b3\u30eb\u30fc\u30c1\u30f3](\/lang\/cpp20\/coroutines.md)\n \n \n ## \u53c2\u7167\n - [P2300R10 `std::execution`](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2024\/p2300r10.html)\n - [LWG 4202. enable-sender should be a variable template](https:\/\/cplusplus.github.io\/LWG\/issue4202)\n+- [P4159R0 Make `sender_in` and `receiver_of` exposition-only](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p4159r0.html)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"sender_to.md -- execution: P4159R0\u5bfe\u5fdc(#1651)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/sender_to.html"}},"id":"f6a60a971ff049e187f9aba391233cbdc0952b67:reference\/execution\/execution\/sender_to.md","updated":"2026-06-08T00:58:39+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/sender_to.md b\/reference\/execution\/execution\/sender_to.md\ndeleted file mode 100644\nindex 332587bf7..000000000\n--- a\/reference\/execution\/execution\/sender_to.md\n+++ \/dev\/null\n@@ -1,89 +0,0 @@\n-# sender_to\n-* execution[meta header]\n-* concept[meta id-type]\n-* std::execution[meta namespace]\n-* cpp26[meta cpp]\n-\n-```cpp\n-namespace std::execution {\n-  template&lt;class Sndr, class Rcvr&gt;\n-  concept sender_to =\n-    sender_in&lt;Sndr, env_of_t&lt;Rcvr&gt;&gt; &amp;&amp;\n-    receiver_of&lt;Rcvr, completion_signatures_of_t&lt;Sndr, env_of_t&lt;Rcvr&gt;&gt;&gt; &amp;&amp;\n-    requires (Sndr&amp;&amp; sndr, Rcvr&amp;&amp; rcvr) {\n-      connect(std::forward&lt;Sndr&gt;(sndr), std::forward&lt;Rcvr&gt;(rcvr));\n-    };\n-}\n-```\n-* sender_in[link sender_in.md]\n-* env_of_t[link env_of_t.md]\n-* receiver_of[link receiver_of.md]\n-* completion_signatures_of_t[link completion_signatures_of_t.md]\n-* connect[link connect.md]\n-\n-## \u6982\u8981\n-`sender_to`\u306f\u3001[Sender\u578b](sender.md)`Sndr`\u304c[Receiver\u578b](receiver.md)`Rcvr`\u3068\u63a5\u7d9a\u53ef\u80fd\u3067\u3042\u308b\u3053\u3068\u3092\u8868\u3059\u30b3\u30f3\u30bb\u30d7\u30c8\u3067\u3042\u308b\u3002\n-\n-\n-## \u4f8b\n-```cpp example\n-#include &lt;print&gt;\n-#include &lt;execution&gt;\n-namespace ex = std::execution;\n-\n-struct ValueReceiver {\n-  using receiver_concept = ex::receiver_t;\n-\n-  void set_value(int v) &amp;&amp; noexcept\n-  {\n-    std::println(&#34;{}&#34;, v);\n-  }\n-};\n-\n-int main()\n-{\n-  \/\/ \u502442\u3092\u9001\u4fe1\u3059\u308bSender\n-  ex::sender auto sndr = ex::just(42);\n-  static_assert(ex::sender_to&lt;decltype(sndr), ValueReceiver&gt;);\n-\n-  \/\/ int\u5024\u3092\u53d7\u4fe1\u3057\u3066\u8868\u793a\u3059\u308bReceiver\n-  ValueReceiver rcvr;\n- \n-  \/\/ Sender\u3068Receiver\u3092\u63a5\u7d9a\n-  ex::operation_state auto op = ex::connect(sndr, rcvr);\n-  \/\/ Operation State\u3092\u958b\u59cb\n-  ex::start(op);\n-}\n-```\n-* ex::sender_to[color ff0000]\n-* ex::receiver_t[link receiver.md]\n-* ex::sender[link sender.md]\n-* ex::just[link just.md]\n-* ex::operation_state[link operation_state.md]\n-* ex::connect[link connect.md]\n-* ex::start[link start.md]\n-\n-### \u51fa\u529b\n-```\n-42\n-```\n-\n-\n-## \u30d0\u30fc\u30b8\u30e7\u30f3\n-### \u8a00\u8a9e\n-- C++26\n-\n-### \u51e6\u7406\u7cfb\n-- [Clang](\/implementation.md#clang): ??\n-- [GCC](\/implementation.md#gcc): ??\n-- [ICC](\/implementation.md#icc): ??\n-- [Visual C++](\/implementation.md#visual_cpp): ??\n-\n-\n-## \u95a2\u9023\u9805\u76ee\n-- [`execution::sender`](sender.md)\n-- [`execution::receiver`](receiver.md)\n-\n-\n-## \u53c2\u7167\n-- [P2300R10 `std::execution`](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2024\/p2300r10.html)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"sync_wait -- execution: P4159R0\u5bfe\u5fdc(#1651)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/this_thread\/sync_wait.html"}},"id":"f6a60a971ff049e187f9aba391233cbdc0952b67:reference\/execution\/this_thread\/sync_wait.md","updated":"2026-06-08T00:58:39+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/this_thread\/sync_wait.md b\/reference\/execution\/this_thread\/sync_wait.md\nindex e2d010f8c..77106353e 100644\n--- a\/reference\/execution\/this_thread\/sync_wait.md\n+++ b\/reference\/execution\/this_thread\/sync_wait.md\n@@ -58,7 +58,7 @@ namespace std::this_thread {\n ### Sender\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u30bf\u30b0 `sync_wait`\n \u8aac\u660e\u7528\u306e`sndr`\u3092`decltype((sndr))`\u304c`Sndr`\u578b\u3068\u306a\u308b\u5f0f\u3068\u3059\u308b\u3002\n \n-[`sender_to`](..\/execution\/sender_to.md)`&lt;Sndr,` [`sync-wait-receiver`](sync-wait-receiver.md)`&lt;Sndr&gt;&gt; == false`\u306e\u3068\u304d\u3001\u5f0f`sync_wait.apply_sender(sndr)`\u306f\u4e0d\u9069\u683c\u3068\u306a\u308b\u3002\n+[`sender-to`](..\/execution\/sender-to.md)`&lt;Sndr,` [`sync-wait-receiver`](sync-wait-receiver.md)`&lt;Sndr&gt;&gt; == false`\u306e\u3068\u304d\u3001\u5f0f`sync_wait.apply_sender(sndr)`\u306f\u4e0d\u9069\u683c\u3068\u306a\u308b\u3002\n \n \u305d\u3046\u3067\u306a\u3051\u308c\u3070\u3001\u5f0f`sync_wait.apply_sender(sndr)`\u306f\u4e0b\u8a18\u3068\u7b49\u4fa1\u3002\n \n@@ -145,3 +145,4 @@ result=(100, X)\n - [P2300R10 `std::execution`](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2024\/p2300r10.html)\n - [P3557R3 High-Quality Sender Diagnostics with Constexpr Exceptions](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2025\/p3557r3.html)\n - [P3826R5 Fix Sender Algorithm Customization](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3826r5.html)\n+- [P4159R0 Make `sender_in` and `receiver_of` exposition-only](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p4159r0.html)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"execution -- execution: P4151R1\u5bfe\u5fdc(#1650)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution.html"}},"id":"115f17d4667a2a4d2f2e3dcec1a6cadb25f5f20d:reference\/execution\/execution.md","updated":"2026-06-07T18:28:55+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution.md b\/reference\/execution\/execution.md\nindex cf5e3d776..bb6efdb6a 100644\n--- a\/reference\/execution\/execution.md\n+++ b\/reference\/execution\/execution.md\n@@ -163,7 +163,7 @@ Sender\u30b3\u30f3\u30b7\u30e5\u30fc\u30de\u306f\u540d\u524d\u7a7a\u9593 `std::this_thread` \u304a\u3088\u3073\u540d\u524d\u7a7a\u9593\n |------|------|----------------|\n | [`execution::as_awaitable`](execution\/as_awaitable.md) | Sender\u3092[Awaitable\u578b](\/lang\/cpp20\/coroutines.md)\u3078\u5909\u63db (customization point object) | C++26 |\n | [`execution::with_awaitable_senders`](execution\/with_awaitable_senders.md) | [Promise\u578b](\/lang\/cpp20\/coroutines.md)\u306e\u57fa\u5e95\u30af\u30e9\u30b9 (class template) | C++26 |\n-| [`execution::affine_on`](execution\/affine_on.md) | \u30bf\u30b9\u30af\u30b3\u30eb\u30fc\u30c1\u30f3\u306eScheduler Affinity\u3092\u5b9f\u73fe (customization point object) | C++26 |\n+| [`execution::affine`](execution\/affine.md) | \u30bf\u30b9\u30af\u30b3\u30eb\u30fc\u30c1\u30f3\u306eScheduler Affinity\u3092\u5b9f\u73fe (customization point object) | C++26 |\n | [`execution::inline_scheduler`](execution\/inline_scheduler.md) | \u30a4\u30f3\u30e9\u30a4\u30f3Scheduler (class) | C++26 |\n | [`execution::task_scheduler`](execution\/task_scheduler.md) | \u4efb\u610fScheduler\u578b\u3092\u4fdd\u6301\u3059\u308bScheduler (class) | C++26 |\n | [`execution::with_error`](execution\/with_error.md) | \u30bf\u30b9\u30af\u30b3\u30eb\u30fc\u30c1\u30f3\u304b\u3089\u306e\u30a8\u30e9\u30fc\u5b8c\u4e86 (class template) | C++26 |\n@@ -207,3 +207,4 @@ Sender\u30b3\u30f3\u30b7\u30e5\u30fc\u30de\u306f\u540d\u524d\u7a7a\u9593 `std::this_thread` \u304a\u3088\u3073\u540d\u524d\u7a7a\u9593\n - [P3986R1 A Wording Strategy for Inlinable Receivers](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3986r1.pdf)\n - [P3826R5 Fix Sender Algorithm Customization](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3826r5.html)\n - [P3941R4 Scheduler Affinity](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3941r4.html)\n+- [P4151R1 Rename `affine_on`](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p4151r1.pdf)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"affine -- execution: P4151R1\u5bfe\u5fdc(#1650)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/affine.html"}},"id":"115f17d4667a2a4d2f2e3dcec1a6cadb25f5f20d:reference\/execution\/execution\/affine.md","updated":"2026-06-07T18:28:55+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/affine.md b\/reference\/execution\/execution\/affine.md\nnew file mode 100644\nindex 000000000..ef01a5042\n--- \/dev\/null\n+++ b\/reference\/execution\/execution\/affine.md\n@@ -0,0 +1,94 @@\n+# affine\n+* execution[meta header]\n+* cpo[meta id-type]\n+* std::execution[meta namespace]\n+* cpp26[meta cpp]\n+\n+```cpp\n+namespace std::execution {\n+  struct affine_t { unspecified };\n+  inline constexpr affine_t affine{};\n+}\n+```\n+* unspecified[italic]\n+\n+## \u6982\u8981\n+`affine`\u306f\u3001[Receiver](receiver.md)\u306e[Scheduler](scheduler.md)\u4e0a\u3067\u5b8c\u4e86\u3055\u305b\u308bSender\u30a2\u30c0\u30d7\u30bf\u3067\u3042\u308b\u3002\n+\u30a2\u30c0\u30d7\u30c8\u5bfe\u8c61Sender\u304c\u6b63\u3057\u3044Scheduler\u4e0a\u3067\u5b8c\u4e86\u3059\u308b\u3068\u5224\u65ad\u3067\u304d\u308b\u3068\u304d\u3001\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306f\u30b9\u30b1\u30b8\u30e5\u30fc\u30ea\u30f3\u30b0\u64cd\u4f5c\u3092\u56de\u907f\u3067\u304d\u308b\u3002\n+\n+`affine`\u306f[\u30d1\u30a4\u30d7\u53ef\u80fdSender\u30a2\u30c0\u30d7\u30bf\u30aa\u30d6\u30b8\u30a7\u30af\u30c8](sender_adaptor_closure.md)\u3067\u3042\u308a\u3001\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u8a18\u6cd5\u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308b\u3002\n+\n+\n+## \u52b9\u679c\n+\u8aac\u660e\u7528\u306e\u5f0f`sndr`\u306b\u5bfe\u3057\u3066\u3001`decltype((sndr))`\u304c[`sender`](sender.md)\u3092\u6e80\u305f\u3055\u306a\u3044\u3068\u304d\u3001\u547c\u3073\u51fa\u3057\u5f0f`affine(sndr)`\u306f\u4e0d\u9069\u683c\u3068\u306a\u308b\u3002\n+\n+\u305d\u3046\u3067\u306a\u3051\u308c\u3070\u3001\u547c\u3073\u51fa\u3057\u5f0f`affine(sndr)`\u306f\u4e0b\u8a18\u3068\u7b49\u4fa1\u3002\n+\n+```cpp\n+make-sender(affine, env&lt;&gt;(), sndr)\n+```\n+* make-sender[link make-sender.md]\n+* env&lt;&gt;[link env.md]\n+\n+\n+### Sender\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u30bf\u30b0 `affine`\n+\u578b\u304c[`scheduler`](scheduler.md)\u306e\u30e2\u30c7\u30eb\u3067\u3042\u308b\u90e8\u5206\u5f0f`sch`\u306b\u5bfe\u3057\u3066\u3001\u8aac\u660e\u7528\u306e\u5f0f`UNSTOPPABLE-SCHEDULER(sch)`\u3092\u3001\u305d\u306e\u578b\u304c[`scheduler`](scheduler.md)\u306e\u30e2\u30c7\u30eb\u3067\u3042\u308b\u5f0f`e`\u3068\u3059\u308b\u3002\n+\n+- \u5f0f[`schedule`](schedule.md)`(e)`\u306f[`unstoppable`](unstoppable.md)`(`[`schedule`](schedule.md)`(sch))`\u3068\u7b49\u4fa1\u306a\u5f0f\u3002\n+- \u4efb\u610f\u306e[\u30af\u30a8\u30ea\u30aa\u30d6\u30b8\u30a7\u30af\u30c8](..\/queryable.md)`q`\u3068\u90e8\u5206\u5f0f\u306e\u30d1\u30c3\u30af`args...`\u306b\u5bfe\u3057\u3066\u3001\u5f0f`e.query(q, args...)`\u306f`sch.query(q, args...)`\u3068\u7b49\u4fa1\u306a\u5f0f\u3002\n+- \u5f0f`e == UNSTOPPABLE-SCHEDULER(other)`\u306f`sch == other`\u3068\u7b49\u4fa1\u306a\u5f0f\u3002\n+\n+\u8aac\u660e\u7528\u306e\u5f0f`sndr`\u3068`ev`\u306b\u5bfe\u3057\u3066\u3001[`sender-for`](sender-for.md)`&lt;decltype((sndr)), affine_t&gt; == false`\u306e\u3068\u304d\u3001\u5f0f`affine.transform_sender(sndr, ev)`\u306f\u4e0d\u9069\u683c\u3068\u306a\u308b\u3002\n+\n+\u305d\u3046\u3067\u306a\u3051\u308c\u3070\u3001\u5f0f`affine.transform_sender(sndr, ev)`\u306f\u4e0b\u8a18\u3068\u7b49\u4fa1\u3002\n+\n+```cpp\n+auto&amp; [_, _, child] = sndr;\n+if constexpr (requires { std::forward_like&lt;Sndr&gt;(child).affine(); }) {\n+  return std::forward_like&lt;Sndr&gt;(child).affine();\n+} else {\n+  return continues_on(std::forward_like&lt;Sndr&gt;(child),\n+                      UNSTOPPABLE-SCHEDULER(get_start_scheduler(ev)));\n+}\n+```\n+* continues_on[link continues_on.md]\n+* get_start_scheduler[link get_start_scheduler.md]\n+\n+\n+## \u30ab\u30b9\u30bf\u30de\u30a4\u30bc\u30fc\u30b7\u30e7\u30f3\u30dd\u30a4\u30f3\u30c8\n+[Receiver](receiver.md)\u63a5\u7d9a\u6642\u306b\u3001\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u5b9f\u884c\u30c9\u30e1\u30a4\u30f3\u306b\u5bfe\u3057\u3066[`execution::transform_sender`](transform_sender.md)\u7d4c\u7531\u3067Sender\u5909\u63db\u304c\u884c\u308f\u308c\u308b\u3002\n+[\u30c7\u30d5\u30a9\u30eb\u30c8\u5b9f\u884c\u30c9\u30e1\u30a4\u30f3](default_domain.md)\u3067\u306f\u7121\u5909\u63db\u3002\n+\n+\u8aac\u660e\u7528\u306e\u5f0f`out_sndr`\u3092`affine(sndr)`\u306e\u623b\u308a\u5024[Sender](sender.md)\u3068\u3057\u3001\u578b`OutSndr`\u3092`decltype((out_sndr))`\u3068\u3059\u308b\u3002\u5f0f`out_rcvr`\u3092[\u74b0\u5883](..\/queryable.md)`Env`\u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f[Receiver](receiver.md)\u3068\u3059\u308b\u3002[`get_start_scheduler`](get_start_scheduler.md)`(`[`get_env`](get_env.md)`(out_rcvr))`\u304c\u4e0d\u9069\u683c\u3082\u3057\u304f\u306f[`infallible-scheduler`](infallible-scheduler.md)`&lt;Env&gt;`\u3092\u6e80\u305f\u3055\u306a\u3044\u3068\u304d\u3001\u5f0f[`get_completion_signatures`](get_completion_signatures.md)`&lt;OutSndr, Env&gt;()`\u306e\u8a55\u4fa1\u306f\u4f8b\u5916\u3067\u7d42\u4e86\u3059\u308b\u3002`out_sndr`\u3068`out_rcvr`\u3068\u306e[\u63a5\u7d9a(connect)](connect.md)\u7d50\u679c[Operation State](operation_state.md)\u3078\u306e\u5de6\u8fba\u5024\u53c2\u7167\u3092`op`\u3068\u3057\u305f\u3068\u304d\u3001\n+\n+- \u547c\u3073\u51fa\u3057[`start`](start.md)`(op)`\u306f\u3001\u73fe\u5728\u306e\u5b9f\u884c\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u4e0a\u3067\u5165\u529b[Sender](sender.md)`sndr`\u3092\u958b\u59cb\u3057\u3001[Scheduler](scheduler.md)`sch`\u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u5b9f\u884c\u30ea\u30bd\u30fc\u30b9\u306b\u5c5e\u3059\u308b\u5b9f\u884c\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u4e0a\u3067`out_rcvr`\u306e\u5b8c\u4e86\u64cd\u4f5c\u304c\u5b9f\u884c\u3055\u308c\u308b\u3002\n+- \u73fe\u5728\u306e\u5b9f\u884c\u30ea\u30bd\u30fc\u30b9\u304c`sch`\u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u5b9f\u884c\u30ea\u30bd\u30fc\u30b9\u3068\u540c\u4e00\u306e\u3068\u304d\u3001[`start`](start.md)`(op)`\u306e\u5b8c\u4e86\u3088\u308a\u3082\u524d\u306b`out_rcvr`\u306e\u5b8c\u4e86\u64cd\u4f5c\u304c\u547c\u3070\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002\n+\n+\n+## \u5099\u8003\n+`affine`\u306f[\u30bf\u30b9\u30af\u30b3\u30eb\u30fc\u30c1\u30f3](task.md)\u306eScheduler Affinity\u5b9f\u73fe\u306b\u7528\u3044\u3089\u308c\u308b\u3002\n+\u8a73\u7d30\u4ed5\u69d8\u306f[`task::promise::await_transform`](task\/promise_type\/await_transform.md)\u3092\u53c2\u7167\u306e\u3053\u3068\u3002\n+\n+\u958b\u59cb\u3055\u308c\u305f[Scheduler](scheduler.md)\u4e0a\u3067\u518d\u958b(resume)\u3055\u308c\u308b\u3068\u5206\u304b\u3063\u3066\u3044\u308b[Sender](sender.md)\u306b\u5bfe\u3057\u3066\u3001\u51e6\u7406\u7cfb\uff08\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u5b9f\u88c5\uff09\u306f`affine`\u30e1\u30f3\u30d0\u95a2\u6570\u3092\u63d0\u4f9b\u3059\u3079\u304d\u3067\u3042\u308b\u3002\u305d\u306e\u3088\u3046\u306aSender\u306e\u4f8b\u3068\u3057\u3066\u3001[`just`](just.md), [`just_error`](just_error.md), [`just_stopped`](just_stopped.md), [`read_env`](read_env.md), [`write_env`](write_env.md)\u7b49\u304c\u3042\u308b\u3002\n+\n+\n+## \u30d0\u30fc\u30b8\u30e7\u30f3\n+### \u8a00\u8a9e\n+- C++26\n+\n+### \u51e6\u7406\u7cfb\n+- [Clang](\/implementation.md#clang): ??\n+- [GCC](\/implementation.md#gcc): ??\n+- [ICC](\/implementation.md#icc): ??\n+- [Visual C++](\/implementation.md#visual_cpp): ??\n+\n+\n+## \u95a2\u9023\u9805\u76ee\n+- [`execution::task`](task.md)\n+\n+\n+## \u53c2\u7167\n+- [P3552R3 Add a Coroutine Task Type](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2025\/p3552r3.html)\n+- [P3826R5 Fix Sender Algorithm Customization](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3826r5.html)\n+- [P3941R4 Scheduler Affinity](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3941r4.html)\n+- [P4151R1 Rename `affine_on`](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p4151r1.pdf)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"await_transform -- execution: P4151R1\u5bfe\u5fdc(#1650)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/task\/promise_type\/await_transform.html"}},"id":"115f17d4667a2a4d2f2e3dcec1a6cadb25f5f20d:reference\/execution\/execution\/task\/promise_type\/await_transform.md","updated":"2026-06-07T18:28:55+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/task\/promise_type\/await_transform.md b\/reference\/execution\/execution\/task\/promise_type\/await_transform.md\nindex 263eda056..afc1af070 100644\n--- a\/reference\/execution\/execution\/task\/promise_type\/await_transform.md\n+++ b\/reference\/execution\/execution\/task\/promise_type\/await_transform.md\n@@ -18,7 +18,7 @@ auto await_transform(Sender&amp;&amp; sndr); \/\/ (1)\n \n ## \u52b9\u679c\n [`same_as`](\/reference\/concepts\/same_as.md)`&lt;`[`inline_scheduler`](..\/..\/inline_scheduler.md)`,` [`start_scheduler_type`](..\/..\/task.md)`&gt; == true`\u306a\u3089\u3070\u3001[`as_awaitable`](..\/..\/as_awaitable.md)`(std::forward&lt;Sender&gt;(sndr), *this)`\u3092\u8fd4\u3059\u3002\n-\u305d\u3046\u3067\u306a\u3051\u308c\u3070\u3001[`as_awaitable`](..\/..\/as_awaitable.md)`(`[`affine_on`](..\/..\/affine_on.md)`(std::forward&lt;Sender&gt;(sndr)), *this)`\u3092\u8fd4\u3059\u3002\n+\u305d\u3046\u3067\u306a\u3051\u308c\u3070\u3001[`as_awaitable`](..\/..\/as_awaitable.md)`(`[`affine`](..\/..\/affine.md)`(std::forward&lt;Sender&gt;(sndr)), *this)`\u3092\u8fd4\u3059\u3002\n \n \n ## \u30d0\u30fc\u30b8\u30e7\u30f3\n@@ -34,10 +34,11 @@ auto await_transform(Sender&amp;&amp; sndr); \/\/ (1)\n \n ## \u95a2\u9023\u9805\u76ee\n - [`execution::as_awaitable`](..\/..\/as_awaitable.md)\n-- [`execution::affine_on`](..\/..\/affine_on.md)\n+- [`execution::affine`](..\/..\/affine.md)\n - [`execution::inline_scheduler`](..\/..\/inline_scheduler.md)\n \n \n ## \u53c2\u7167\n - [P3552R3 Add a Coroutine Task Type](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2025\/p3552r3.html)\n - [P3941R4 Scheduler Affinity](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3941r4.html)\n+- [P4151R1 Rename `affine_on`](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p4151r1.pdf)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"task_scheduler -- execution\/task_scheduler: P3927R2\u5bfe\u5fdc(#1649)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/task_scheduler.html"}},"id":"3fdae67688f780ed3067cf554337127a94184d79:reference\/execution\/execution\/task_scheduler.md","updated":"2026-06-07T17:59:46+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/task_scheduler.md b\/reference\/execution\/execution\/task_scheduler.md\nindex 971a126b5..c133d345c 100644\n--- a\/reference\/execution\/execution\/task_scheduler.md\n+++ b\/reference\/execution\/execution\/task_scheduler.md\n@@ -15,15 +15,13 @@ namespace std::execution {\n \n \u5b9f\u884c\u5236\u5fa1\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30bf\u30b9\u30af\u30b3\u30eb\u30fc\u30c1\u30f3\u623b\u308a\u5024\u578b[`task&lt;T, E&gt;`](task.md)\u306b\u304a\u3044\u3066\u3001\u74b0\u5883`E`\u306e\u30c7\u30d5\u30a9\u30eb\u30c8Scheduler\u578b\u3068\u3057\u3066\u5229\u7528\u3055\u308c\u308b\u3002\n \n-`task_scheduler`\u306f[`scheduler`](scheduler.md)\u306e\u30e2\u30c7\u30eb\u3067\u3042\u308b\u3002\n-\n \n ## \u30af\u30e9\u30b9\u4ed5\u69d8\n-`task_scheduler`\u30af\u30e9\u30b9\u306f\u3001\u4e0b\u8a18\u306e\u8aac\u660e\u5c02\u7528\u30e1\u30f3\u30d0\u5909\u6570\u3092\u6301\u3064\u3002\n+`task_scheduler`\u306f[`scheduler`](scheduler.md)\u306e\u30e2\u30c7\u30eb\u3067\u3042\u308b\u3002`task_scheduler`\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8`s`\u306b\u5bfe\u3057\u3066\u3001`SCHED(s)`\u3092`s.sch_`\u304c\u6240\u6709\u3059\u308b\u30dd\u30a4\u30f3\u30bf\u304c\u6307\u3059\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3059\u308b\u3002\u5f0f[`get_forward_progress_guarantee`](get_forward_progress_guarantee.md)`(s)`\u306f`get_forward_progress_guarantee(SCHED(s))`\u3068\u7b49\u4fa1\u3002\u5f0f[`get_completion_domain`](get_completion_domain.md)`&lt;`[`set_value_t`](set_value.md)`&gt;(s)`\u306f`task_scheduler::`[`ts-domain()`](task_scheduler\/schedule.md)\u3068\u7b49\u4fa1\u3002\n \n-- `sch_` : [`shared_ptr`](\/reference\/memory\/shared_ptr.md)`&lt;void&gt;`\u578b\n+`task_scheduler`\u30af\u30e9\u30b9\u306f\u3001\u4e0b\u8a18\u306e\u8aac\u660e\u5c02\u7528\u30e1\u30f3\u30d0\u5909\u6570\u3092\u6301\u3064\u3002\n \n-`task_scheduler`\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8`s`\u306b\u5bfe\u3057\u3066\u3001`SCHED(s)`\u3092`s.sch_`\u304c\u6240\u6709\u3059\u308b\u30dd\u30a4\u30f3\u30bf\u304c\u6307\u3059\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3059\u308b\u3002\n+- `sch_` : [`shared_ptr`](\/reference\/memory\/shared_ptr.md)`&lt;`[`system_context_replaceability::parallel_scheduler_backend`](system_context_replaceability\/parallel_scheduler_backend.md)`&gt;`\u578b\n \n \n ## \u30e1\u30f3\u30d0\u95a2\u6570\n@@ -91,3 +89,4 @@ int main()\n ## \u53c2\u7167\n - [P3552R3 Add a Coroutine Task Type](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2025\/p3552r3.html)\n - [LWG4446. Bad phrasing for `SCHED(s)`](https:\/\/cplusplus.github.io\/LWG\/issue4446)\n+- [P3927R2 `task_scheduler` support for parallel `bulk` execution](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3927r2.html)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf -- execution\/task_scheduler: P3927R2\u5bfe\u5fdc(#1649)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/task_scheduler\/op_constructor.html"}},"id":"3fdae67688f780ed3067cf554337127a94184d79:reference\/execution\/execution\/task_scheduler\/op_constructor.md","updated":"2026-06-07T17:59:46+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/task_scheduler\/op_constructor.md b\/reference\/execution\/execution\/task_scheduler\/op_constructor.md\nindex e55429b88..d9faba92f 100644\n--- a\/reference\/execution\/execution\/task_scheduler\/op_constructor.md\n+++ b\/reference\/execution\/execution\/task_scheduler\/op_constructor.md\n@@ -21,17 +21,17 @@ task_scheduler(const task_scheduler&amp;) = default;  \/\/ (2)\n \n \n ## \u9069\u683c\u8981\u4ef6\n-`Sch`\u306f[`infallible-scheduler](..\/infallible-scheduler.md)&lt;`[`env&lt;&gt;`](..\/env.md)`&gt;`\u3092\u6e80\u305f\u3059\u3002\n+`Sch`\u306f[`infallible-scheduler`](..\/infallible-scheduler.md)`&lt;`[`env&lt;&gt;`](..\/env.md)`&gt;`\u3092\u6e80\u305f\u3059\u3002\n \n \n ## \u52b9\u679c\n-(1) \u8aac\u660e\u5c02\u7528\u306e\u30e1\u30f3\u30d0\u5909\u6570`sch_`\u3092[`allocate_shared`](\/reference\/memory\/allocate_shared.md)`&lt;`[`remove_cvref_t`](\/reference\/type_traits\/remove_cvref.md)`&lt;Sch&gt;&gt;(alloc,` [`std::forward`](\/reference\/utility\/forward.md)`&lt;Sch&gt;(sch))`\u3067\u521d\u671f\u5316\u3059\u308b\u3002\n+(1) \u8aac\u660e\u5c02\u7528\u306e\u30e1\u30f3\u30d0\u5909\u6570`sch_`\u3092[`allocate_shared`](\/reference\/memory\/allocate_shared.md)`&lt;`[`backend-for`](schedule.md)`&lt;`[`remove_cvref_t`](\/reference\/type_traits\/remove_cvref.md)`&lt;Sch&gt;&gt;&gt;(alloc,` [`std::forward`](\/reference\/utility\/forward.md)`&lt;Sch&gt;(sch))`\u3067\u521d\u671f\u5316\u3059\u308b\u3002\n \n \n ## \u5099\u8003\n \u51e6\u7406\u7cfb\uff08\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u5b9f\u88c5\uff09\u306f\u3001\u5c0f\u3055\u306aScheduler\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5bfe\u3057\u3066\u52d5\u7684\u30e1\u30e2\u30ea\u78ba\u4fdd\u3092\u907f\u3051\u308b\u3053\u3068\u304c\u63a8\u5968\u3055\u308c\u308b\u3002\n \n-`*this`\u4e0a\u306e\u547c\u3073\u51fa\u3057\u306b\u3088\u3063\u3066\u3048\u3089\u308c\u308b[`ts-sender`\u3084`state`\u30aa\u30d6\u30b8\u30a7\u30af\u30c8](schedule.md)\u306e\u69cb\u7bc9\u3067\u306f\u3001`alloc`\u306e\u30b3\u30d4\u30fc\u3092\u7528\u3044\u3066\u30e1\u30e2\u30ea\u78ba\u4fdd\u304c\u884c\u308f\u308c\u308b\u3002\n+`*this`\u4e0a\u306e\u4efb\u610f\u306e\u547c\u3073\u51fa\u3057\u306b\u3088\u308b\u30e1\u30e2\u30ea\u78ba\u4fdd\u3067\u306f\u3001`alloc`\u306e\u30b3\u30d4\u30fc\u304c\u7528\u3044\u3089\u308c\u308b\u3002\n \n \n ## \u30d0\u30fc\u30b8\u30e7\u30f3\n@@ -53,3 +53,4 @@ task_scheduler(const task_scheduler&amp;) = default;  \/\/ (2)\n - [P3552R3 Add a Coroutine Task Type](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2025\/p3552r3.html)\n - [LWG4445. `sch_` must not be in moved-from state](https:\/\/cplusplus.github.io\/LWG\/issue4445)\n - [P3941R4 Scheduler Affinity](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3941r4.html)\n+- [P3927R2 `task_scheduler` support for parallel `bulk` execution](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3927r2.html)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}},{"title":"schedule -- execution\/task_scheduler: P3927R2\u5bfe\u5fdc(#1649)","link":{"@attributes":{"href":"https:\/\/cpprefjp.github.io\/reference\/execution\/execution\/task_scheduler\/schedule.html"}},"id":"3fdae67688f780ed3067cf554337127a94184d79:reference\/execution\/execution\/task_scheduler\/schedule.md","updated":"2026-06-07T17:59:46+09:00","summary":"<pre><code>diff --git a\/reference\/execution\/execution\/task_scheduler\/schedule.md b\/reference\/execution\/execution\/task_scheduler\/schedule.md\nindex 66e5724cf..601a7302e 100644\n--- a\/reference\/execution\/execution\/task_scheduler\/schedule.md\n+++ b\/reference\/execution\/execution\/task_scheduler\/schedule.md\n@@ -6,75 +6,143 @@\n * cpp26[meta cpp]\n \n ```cpp\n-ts-sender schedule();\n+see below schedule();\n ```\n-* ts-sender[italic]\n \n ## \u6982\u8981\n \u4fdd\u6301\u4e2d[Scheduler](..\/scheduler.md)\u306e[\u30b9\u30b1\u30b8\u30e5\u30fc\u30ebSender](..\/schedule.md)\u3092\u8fd4\u3059\u3002\n \n \n-## \u52b9\u679c\n-[`schedule`](..\/schedule.md)`(SCHED(*this))`\u3067\u521d\u671f\u5316\u3055\u308c\u305f[Sender](..\/sender.md)\u3092\u4fdd\u6301\u3059\u308b\u3001\u8aac\u660e\u5c02\u7528\u306e`ts-sender`\u578b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u8fd4\u3059\u3002\n+## \u623b\u308a\u5024\n+\u305d\u306e\u578b\u304c[`sender`](..\/sender.md)\u306e\u30e2\u30c7\u30eb\u3067\u3042\u308a\u3001\u4e0b\u8a18\u3092\u6e80\u305f\u3059`ts-sndr`\u306e\u53f3\u8fba\u5024\u3002\n+\n+- [`get_completion_scheduler`](..\/get_completion_scheduler.md)`&lt;`[`set_value_t`](..\/set_value.md)`&gt;(`[`get_env`](..\/get_env.md)`(ts-sndr))`\u304c`*this`\u3068\u7b49\u3057\u3044\u3002\n+- [`get_completion_domain`](..\/get_completion_domain.md)`&lt;`[`set_value_t`](..\/set_value.md)`&gt;(`[`get_env`](..\/get_env.md)`(ts-sndr))`\u304c`ts-domain()`\u3068\u7b49\u4fa1\u306a\u5f0f\u3002\n+- [Receiver](..\/receiver.md)`rcvr`\u304c`ts-sndr`\u306b\u63a5\u7d9a\u3055\u308c\u3001\u7d50\u679c\u306e[Opearation State](..\/operation_state.md)\u304c\u958b\u59cb\u3055\u308c\u308b\u3068\u304d\u3001\u6b21\u306e\u5024\u3067`sch_-&gt;schedule(r, s)`\u3092\u547c\u3073\u51fa\u3059\u3002\n+    - `r`\u306f\u57fa\u5e95[`system_context_replaceability::receiver_proxy`](..\/system_context_replaceability\/receiver_proxy.md)\u3092\u6301\u3064`rcvr`\u306e\u30d7\u30ed\u30ad\u30b7\u3067\u3042\u308a\u3001\u304b\u3064\n+    - `s`\u306f`r`\u306b\u5bfe\u3059\u308b\u4e8b\u524d\u78ba\u4fdd\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u30b9\u30c8\u30ec\u30fc\u30b8\u3067\u3042\u308b\u3002\n+- \u4efb\u610f\u306e\u578b`E`\u306b\u5bfe\u3057\u3066\u3001[`unstoppable_token`](\/reference\/stop_token\/unstoppable_token.md)`&lt;`[`stop_token_of_t`](..\/..\/stop_token_of_t.md)`&lt;E&gt;&gt;`\u304c`true`\u306e\u3068\u304d\u3001[`completion_signatures_of_t`](..\/completion_signatures_of_t.md)`&lt;decltype(ts-sndr)&gt;, E&gt;`\u306f[`completion_signatures`](..\/completion_signatures.md)`&lt;`[`set_value_t`](..\/set_value.md)`()&gt;`\u3092\u8868\u3059\u3002\u305d\u3046\u3067\u306a\u3051\u308c\u3070\u3001[`completion_signatures`](..\/completion_signatures.md)`&lt;`[`set_value_t`](..\/set_value.md)`(),` [`set_stopped_t`](..\/set_stopped.md)`()&gt;`\u3092\u8868\u3059\u3002\n \n \n ## \u8aac\u660e\u5c02\u7528\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\n-### \u30af\u30e9\u30b9`ts-sender`\n-\u8aac\u660e\u5c02\u7528\u306e\u30af\u30e9\u30b9`task_scheduler::ts-sender`\u306f\u4e0b\u8a18\u306e\u901a\u308a\u5b9a\u7fa9\u3055\u308c\u308b\u3002\n+### \u5f0f`WARP-RCVR`\n+[`receiver_proxy`](..\/system_context_replaceability\/receiver_proxy.md)\u304b\u3089\u6d3e\u751f\u3057\u305f\u578b\u306e\u5de6\u8fba\u5024`r`\u306b\u5bfe\u3057\u3066\u3001`WARP-RCVR(r)`\u3092[`receiver`](..\/receiver.md)\u306e\u30e2\u30c7\u30eb\u3067\u3042\u308a\u3001\u305d\u306e\u5b8c\u4e86\u30cf\u30f3\u30c9\u30e9\u304c`r`\u306e\u5bfe\u5fdc\u3059\u308b\u5b8c\u4e86\u30cf\u30f3\u30c9\u30e9\u3092\u547c\u3073\u51fa\u3059\u3088\u3046\u306a\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3059\u308b\u3002\n \n+### \u30af\u30e9\u30b9\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8`backend-for`\n ```cpp\n-class task_scheduler::ts-sender { \/\/ exposition only\n-public:\n-  using sender_concept = sender_t;\n-\n-  template &lt;receiver R&gt;\n-  state&lt;R&gt; connect(R&amp;&amp; rcvr);\n-};\n+namespace std::execution {\n+  template&lt;scheduler Sch&gt;\n+  class task_scheduler::backend-for\n+    : public system_context_replaceability::parallel_scheduler_backend {  \/\/ exposition only\n+  public:\n+    explicit backend-for(Sch sch) : sched_(std::move(sch)) {}\n+\n+    void schedule(receiver_proxy&amp; r, span&lt;byte&gt; s) noexcept override;\n+    void schedule_bulk_chunked(size_t shape, bulk_item_receiver_proxy&amp; r,\n+                               span&lt;byte&gt; s) noexcept override;\n+    void schedule_bulk_unchunked(size_t shape, bulk_item_receiver_proxy&amp; r,\n+                                 span&lt;byte&gt; s) noexcept override;\n+\n+  private:\n+    Sch sched_;\n+  };\n+}\n ```\n-* sender_t[link ..\/sender.md]\n-* receiver[link ..\/receiver.md]\n-* state[italic]\n+* scheduler[link ..\/scheduler.md]\n+* system_context_replaceability::parallel_scheduler_backend[link ..\/system_context_replaceability\/parallel_scheduler_backend.md]\n+* receiver_proxy[link ..\/system_context_replaceability\/receiver_proxy.md]\n+* bulk_item_receiver_proxy[link ..\/system_context_replaceability\/bulk_item_receiver_proxy.md]\n \n-`ts-sender`\u306f[`sender`](..\/sender.md)\u306e\u30e2\u30c7\u30eb\u3067\u3042\u308a\u3001[`completion_signatures_of_t`](..\/completion_signatures_of_t.md)`&lt;ts-sender, E&gt;`\u306f\u4e0b\u8a18\u3068\u306a\u308b :\n+`env`\u3092\u90e8\u5206\u5f0f\u306e\u30d1\u30c3\u30af\u3068\u3057\u305f\u3068\u304d\u3001\u5024\u5b8c\u4e86\u30b7\u30b0\u30cd\u30c1\u30e3[`set_value_t`](..\/set_value.md)`()`\u306e\u307f\u3092\u6301\u3061\u5f0f[`get_completion_scheduler`](..\/get_completion_scheduler.md)`&lt;set_value_t&gt;(`[`get_env`](..\/get_env.md)`(just-sndr-like), env...)`\u304c[`get_completion_scheduler`](..\/get_completion_scheduler.md)`&lt;set_value_t&gt;(sched_, env...)`\u3068\u7b49\u4fa1\u306a\u5f0f\u3067\u3042\u308b\u3088\u3046\u306a[`Sender`](..\/sender.md)\u3092`just-sndr-like`\u3068\u3059\u308b\u3002\n \n-- [`unstoppable_token`](\/reference\/stop_token\/unstoppable_token.md)`&lt;`[`stop_token_of_t`](..\/..\/stop_token_of_t.md)`&lt;E&gt;&gt;`\u304c`true`\u306e\u3068\u304d\u3001[`completion_signatures`](..\/completion_signatures.md)`&lt;`[`set_value_t`](..\/set_value.md)`()&gt;`\n-- \u305d\u3046\u3067\u306a\u3051\u308c\u3070\u3001[`completion_signatures`](..\/completion_signatures.md)`&lt;`[`set_value_t`](..\/set_value.md)`()\u3001`[`set_stopped_t`](..\/set_stopped.md)`()&gt;`\n+```cpp\n+void schedule(receiver_proxy&amp; r, span&lt;byte&gt; s) noexcept override;\n+```\n+* receiver_proxy[link ..\/system_context_replaceability\/receiver_proxy.md]\n \n-\u8aac\u660e\u7528\u306e`sch`\u3092`task_sender`\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3001`sndr`\u3092[`schedule`](..\/schedule.md)`(sch)`\u306b\u3088\u308a\u5f97\u3089\u308c\u308b`ts-sender`\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3059\u308b\u3002[`get_completion_scheduler`](..\/get_completion_scheduler.md)`&lt;`[`set_value_t`](..\/set_value.md)`&gt;(`[`get_env`](..\/get_env.md)`(sndr)) == sch`\u306f`true`\u3068\u306a\u308b\u3002\u30aa\u30d6\u30b8\u30a7\u30af\u30c8`SENDER(sndr)`\u306f\u3001`sndr`\u307e\u305f\u306f\u540c\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304b\u3089\u30e0\u30fc\u30d6\u69cb\u7bc9\u3055\u308c\u305f[Sender](..\/sender.md)\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3059\u308b\u3002\n+- \u52b9\u679c : [`connect`](..\/connect.md)`(`[`schedule`](..\/schedule.md)`(sched_), WRAP-RCVR(r))`\u3067[Operation State](..\/operation_state.md)`os`\u3092\u69cb\u7bc9\u3057\u3001[`start`](..\/start.md)`(os)`\u3092\u547c\u3073\u51fa\u3059\u3002\n \n ```cpp\n-template&lt;receiver Rcvr&gt;\n-state&lt;Rcvr&gt; connect(Rcvr&amp;&amp; rcvr) &amp;&amp;;\n+void schedule_bulk_chunked(size_t shape, bulk_item_receiver_proxy&amp; r,\n+                           span&lt;byte&gt; s) noexcept override;\n ```\n-* state[italic]\n-\n-- \u52b9\u679c : `r`\u3092[`receiver`](..\/receiver.md)\u306e\u30e2\u30c7\u30eb\u3067\u3042\u308b\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3057\u3001\u305d\u306e\u5b8c\u4e86\u30cf\u30f3\u30c9\u30e9\u306f\n-`rcvr`\u307e\u305f\u306f\u305d\u306e\u30b3\u30d4\u30fc\u306b\u5bfe\u5fdc\u3059\u308b\u5b8c\u4e86\u30cf\u30f3\u30c9\u30e9\u3092\u547c\u3073\u51fa\u3059\u3082\u306e\u3068\u3059\u308b\u3002[`connect`](..\/connect.md)`(SENDER(*this),` [`std::move`](\/reference\/utility\/move.md)`(r))`\u3067\u521d\u671f\u5316\u3055\u308c\u305f[Operation State](..\/operation_state.md)\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4fdd\u6301\u3059\u308b`state&lt;Rcvr&gt;`\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u8fd4\u3059\u3002\n+* bulk_item_receiver_proxy[link ..\/system_context_replaceability\/bulk_item_receiver_proxy.md]\n \n+- \u52b9\u679c : \u8aac\u660e\u7528\u306e`chunk_size`\u3092`shape`\u4ee5\u4e0b\u306e\u6574\u6570\u3001`chunk_num`\u3092`(shape + chunk_size - 1) \/ chunk_size`\u3001`m`\u3092`(i + 1) * chunk_size`\u3068`shape`\u306e\u3046\u3061\u5c0f\u3055\u3044\u65b9\u3068\u3057\u3066\u3001\u6574\u6570`i`\u306b\u5bfe\u3057\u3066`fn(i)`\u304c`r.execute(i * chunk_sie, m)`\u3092\u547c\u3073\u51fa\u3059\u95a2\u6570\u30aa\u30d6\u30b8\u30a7\u30af\u30c8`fn`\u3068\u3059\u308b\u3002\u4e0b\u8a18\u306e\u5f0f\u306b\u3088\u3063\u3066[Operation State](..\/operation_state.md)`os`\u3092\u69cb\u7bc9\u3057\u3001[`start`](..\/start.md)`(os)`\u3092\u547c\u3073\u51fa\u3059\u3002\n \n-### \u30af\u30e9\u30b9\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8`state`\n-\u8aac\u660e\u5c02\u7528\u306e\u30af\u30e9\u30b9\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8`task_scheduler::state`\u306f\u4e0b\u8a18\u306e\u901a\u308a\u5b9a\u7fa9\u3055\u308c\u308b\u3002\n+    ```cpp\n+    connect(bulk(just-sndr-like, par, num_chunks, fn), WRAP-RCVR(r))\n+    ```\n+    * connect[link ..\/connect.md]\n+    * bulk[link ..\/bulk.md]\n+    * par[link ..\/execution_policy.md]\n \n ```cpp\n-template &lt;receiver R&gt;\n-class task_scheduler::state { \/\/ exposition only\n-public:\n-  using operation_state_concept = operation_state_t;\n-\n-  void start() &amp; noexcept;\n-};\n+void schedule_bulk_unchunked(size_t shape, bulk_item_receiver_proxy&amp; r,\n+                             span&lt;byte&gt; s) noexcept override;\n ```\n-* receiver[link ..\/receiver.md]\n-* operation_state_t[link ..\/operation_state.md]\n+* bulk_item_receiver_proxy[link ..\/system_context_replaceability\/bulk_item_receiver_proxy.md]\n \n-`state`\u306e\u7279\u6b8a\u5316\u306f[`operation_state`](..\/operation_state.md)\u306e\u30e2\u30c7\u30eb\u3067\u3042\u308b\u3002\n+- \u52b9\u679c : \u6574\u6570`i`\u306b\u5bfe\u3057\u3066`fn(i)`\u304c`r.execute(i, i + 1)`\u3092\u547c\u3073\u51fa\u3059\u95a2\u6570\u30aa\u30d6\u30b8\u30a7\u30af\u30c8`fn`\u3068\u3059\u308b\u3002\u4e0b\u8a18\u306e\u5f0f\u306b\u3088\u3063\u3066[Operation State](..\/operation_state.md)`os`\u3092\u69cb\u7bc9\u3057\u3001[`start`](..\/start.md)`(os)`\u3092\u547c\u3073\u51fa\u3059\u3002\n \n+    ```cpp\n+    connect(bulk(just-sndr-like, par, shape, fn), WRAP-RCVR(r))\n+    ```\n+    * connect[link ..\/connect.md]\n+    * bulk[link ..\/bulk.md]\n+    * par[link ..\/execution_policy.md]\n+\n+\n+### \u30af\u30e9\u30b9`ts-domain`\n ```cpp\n-void start() &amp; noexcept;\n+namespace std::execution {\n+  class task_scheduler::ts-domain : public default_domain {  \/\/ exposition only\n+  public:\n+    template&lt;class BulkSndr, class Env&gt;  \/\/ exposition only\n+    static constexpr auto transform_sender(set_value_t, BulkSndr&amp;&amp; bulk_sndr, const Env&amp; env)\n+      noexcept(see below);\n+  };\n+}\n ```\n+* default_domain[link ..\/default_domain.md]\n+* set_value_t[link ..\/set_value.md]\n \n-- \u52b9\u679c : `st`\u3092`*this`\u306b\u542b\u307e\u308c\u308b[Operation State](..\/operation_state.md)\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3057\u3066\u3001[`start`](..\/start.md)`(st)`\u3068\u7b49\u4fa1\u3002\n-\n+```cpp\n+template&lt;class BulkSndr, class Env&gt;\n+static constexpr auto transform_sender(BulkSndr&amp;&amp; bulk_sndr, const Env&amp; env)\n+  noexcept(is_nothrow_constructible_v&lt;decay_t&lt;BulkSndr&gt;, BulkSndr&gt;);\n+```\n+* is_nothrow_constructible_v[link \/reference\/type_traits\/is_nothrow_constructible.md]\n+* decay_t[link \/reference\/type_traits\/decay.md]\n+\n+- \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf\u5236\u7d04 :\n+    - [`sender_in`](..\/sender_in.md)`&lt;BulkSndr, Env&gt;`\u304c`true`\n+    - \u5f0f`auto(`[`std::forward`](\/reference\/utility\/forward.md)`&lt;BulkSndr&gt;(bulk_sndr))`\u304c\u9069\u683c\n+    - \u4e0b\u8a18\u306e\u3044\u305a\u308c\u304b\u304c`true`\n+        - `sender-for&lt;BulkSndr,` [`bulk_chunked_t`](..\/bulk_chunked.md)`&gt;`\n+        - `sender-for&lt;BulkSndr,` [`bulk_unchunked_t`](..\/bulk_unchunked.md)`&gt;`\n+- \u52b9\u679c : \u4e0b\u8a18\u3068\u7b49\u4fa1\n+    ```cpp\n+    auto&amp; [_, data, child] = bulk_sndr;\n+    auto&amp; [_, shape, fn] = data;\n+    auto sch = call-with-default(get_completion_scheduler&lt;set_value_t&gt;,\n+                                 not-a-scheduler(), get_env(child), FWD-ENV(env));\n+    return e;\n+    ```\n+    * call-with-default[link ..\/call-with-default.md]\n+    * get_completion_scheduler[link ..\/get_completion_scheduler.md]\n+    * set_value_t[link ..\/set_value.md]\n+    * not-a-scheduler()[link ..\/not-a-scheduler.md]\n+    * get_env[link ..\/get_env.md]\n+    * FWD-ENV[link ..\/..\/forwarding_query.md]\n+\n+    \u3053\u3053\u3067\u3001`sch`\u306e\u578b\u304c[`task_scheduler`](..\/task_scheduler.md)\u3067\u306f\u306a\u3044\u3068\u304d\u3001`e`\u306f[`not-a-sender()`](..\/not-a-sender.md)\u3068\u3059\u308b\u3002\u305d\u3046\u3067\u306a\u3051\u308c\u3070\u3001[Receiver](..\/receiver.md)`rvcr`\u3068[\u63a5\u7d9a(connect)](..\/connect.md)\u3055\u308c\u7d50\u679c\u306e[Operation State](..\/operation_state.md)\u304c[\u958b\u59cb(start)](..\/start.md)\u3055\u308c\u305f\u3068\u304d\u3001`child`\u304c\u672a\u898f\u5b9a\u306eReceiver`R`\u3068\u63a5\u7d9a\u3055\u308c\u3066\u958b\u59cb\u3059\u308b[`sender`](..\/sender.md)\u306e\u30e2\u30c7\u30eb\u3067\u3042\u308b\u578b\u306e\u53f3\u8fba\u5024\u3068\u3059\u308b\u3002\n+\n+    `child`\u304c[\u30a8\u30e9\u30fc\u5b8c\u4e86](..\/set_error.md)\u3082\u3057\u304f\u306f[\u505c\u6b62\u5b8c\u4e86](..\/set_stopped.md)\u3059\u308b\u3068\u304d\u3001\u5b8c\u4e86\u64cd\u4f5c\u306f\u5909\u66f4\u3055\u308c\u305a\u306b`rcvr`\u306b\u8ee2\u9001\u3055\u308c\u308b\u3002\u305d\u3046\u3067\u306a\u3051\u308c\u3070\u3001\u5024\u5b8c\u4e86\u7d50\u679c\u304b\u3089decay\u30b3\u30d4\u30fc\u3055\u308c\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u6307\u3059\u5de6\u8fba\u5024\u5f0f\u306e\u30d1\u30c3\u30af`args`\u3068\u3057\u3066\u3001\n+\n+    - `bulk_sndr`\u304c[`bulk_chunked`](..\/bulk_chunked.md)`(child, policy, shape, fn)`\u3068\u7b49\u4fa1\u306a\u5f0f\u307e\u305f\u306f\u305d\u306e\u30b3\u30d4\u30fc\u306e\u8a55\u4fa1\u306e\u7d50\u679c\u3067\u3042\u308b\u3068\u304d\u3001`r`\u3092\u547c\u3073\u51fa\u3057\u53ef\u80fd\u30aa\u30d6\u30b8\u30a7\u30af\u30c8`fn`\u3068\u5f15\u6570`args`\u3092\u6301\u3064`rcvr`\u306b\u5bfe\u3059\u308bbulk chunked\u30d7\u30ed\u30ad\u30b7\u3001`s`\u3092`r`\u306e\u4e8b\u524d\u78ba\u4fdd\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u30b9\u30c8\u30ec\u30fc\u30b8\u3068\u3057\u3066\u3001`sch_-&gt;`[`schedule_bulk_chunked`](..\/system_context_replaceability\/parallel_scheduler_backend\/schedule_bulk_chunked.md)`(shape, r, s)`\u304c\u547c\u3073\u51fa\u3055\u308c\u308b\u3002\n+    - \u305d\u3046\u3067\u306a\u3051\u308c\u3070\u3001`r`\u3092\u547c\u3073\u51fa\u3057\u53ef\u80fd\u30aa\u30d6\u30b8\u30a7\u30af\u30c8`fn`\u3068\u5f15\u6570`args`\u3092\u6301\u3064`rcvr`\u306b\u5bfe\u3059\u308bbulk unchunked\u30d7\u30ed\u30ad\u30b7\u3001`s`\u3092`r`\u306e\u4e8b\u524d\u78ba\u4fdd\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u30b9\u30c8\u30ec\u30fc\u30b8\u3068\u3057\u3066\u3001`sch_-&gt;`[`schedule_bulk_unchunked`](..\/system_context_replaceability\/parallel_scheduler_backend\/schedule_bulk_unchunked.md)`(shape, r, s)`\u304c\u547c\u3073\u51fa\u3055\u308c\u308b\u3002\n+   \n \n ## \u30d0\u30fc\u30b8\u30e7\u30f3\n ### \u8a00\u8a9e\n@@ -88,10 +156,12 @@ void start() &amp; noexcept;\n \n \n ## \u95a2\u9023\u9805\u76ee\n-- [`execution::schedule`](..\/schedule.md)\n+- [`execition::schedule`](..\/schedule.md)\n+- [`execition::bulk_chunked`](..\/bulk_chunked.md)\n+- [`execition::bulk_unchunked`](..\/bulk_unchunked.md)\n \n \n ## \u53c2\u7167\n - [P3552R3 Add a Coroutine Task Type](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2025\/p3552r3.html)\n-- [4342. Missing rvalue reference qualification for `task_scheduler::ts-sender::connect()`](https:\/\/cplusplus.github.io\/LWG\/issue4342)\n - [P3941R4 Scheduler Affinity](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3941r4.html)\n+- [P3927R2 `task_scheduler` support for parallel `bulk` execution](https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2026\/p3927r2.html)\n<\/code><\/pre>","author":{"name":"yoh","email":"kawasaki.liamg@gmail.com"}}]}