|
68 | 68 |
|
69 | 69 | </head> |
70 | 70 | <body> |
71 | | -<header data-kunai-mdinfo="{"meta": {"header": ["execution"], "id-type": ["cpo"], "namespace": ["std::execution"], "cpp": ["cpp26"]}, "sources": [{"id": "8b51ddcceba68e0c09dbee5f0fdeadc043b1a313", "source": "#include <string>\n#include <tuple>\n#include <print>\n#include <variant>\n#include <stdexec/execution.hpp>\nnamespace ex = stdexec;\n\nstruct FizzBuzzSender {\n using sender_concept = ex::sender_t;\n using completion_signatures = ex::completion_signatures<\n ex::set_value_t(int),\n ex::set_value_t(std::string)\n >;\n\n template <typename Rcvr>\n struct state {\n using operation_state_concept = ex::operation_state_t;\n\n state(Rcvr rcvr, int val)\n : rcvr_{std::move(rcvr)}, val_{val} {}\n\n void start() noexcept {\n if (val_ % 15 == 0) {\n ex::set_value(std::move(rcvr_), \"FizzBuzz\");\n } else if (val_ % 3 == 0) {\n ex::set_value(std::move(rcvr_), \"Fizz\");\n } else if (val_ % 5 == 0) {\n ex::set_value(std::move(rcvr_), \"Buzz\");\n } else {\n ex::set_value(std::move(rcvr_), val_);\n }\n }\n\n Rcvr rcvr_;\n int val_;\n };\n\n template <typename Rcvr>\n auto connect(Rcvr rcvr) noexcept {\n return state{std::move(rcvr), val_};\n }\n\n int val_;\n};\n\ntemplate<typename... Ts>\nstruct overload : Ts... { using Ts::operator()...; };\n\nint main()\n{\n int val = 15;\n ex::sender auto sndr = ex::into_variant(FizzBuzzSender{val});\n auto [result] = std::this_thread::sync_wait(sndr).value();\n\n std::visit(overload{\n [](std::tuple<int> n) {\n std::println(\"(int) {}\", get<0>(n));\n },\n [](std::tuple<std::string> s) {\n std::println(\"(str) {}\", get<0>(s));\n }\n }, result);\n}\n"}], "page_id": ["reference", "execution", "execution", "into_variant"]}"> |
| 71 | +<header data-kunai-mdinfo="{"meta": {"header": ["execution"], "id-type": ["cpo"], "namespace": ["std::execution"], "cpp": ["cpp26"]}, "sources": [{"id": "05e7668357f603616f5342898e53247888e00673", "source": "#include <string>\n#include <tuple>\n#include <print>\n#include <variant>\n#include <execution>\nnamespace ex = std::execution;\n\nstruct FizzBuzzSender {\n using sender_concept = ex::sender_t;\n using completion_signatures = ex::completion_signatures<\n ex::set_value_t(int),\n ex::set_value_t(std::string)\n >;\n\n template <typename Rcvr>\n struct state {\n using operation_state_concept = ex::operation_state_t;\n\n state(Rcvr rcvr, int val)\n : rcvr_{std::move(rcvr)}, val_{val} {}\n\n void start() noexcept {\n if (val_ % 15 == 0) {\n ex::set_value(std::move(rcvr_), \"FizzBuzz\");\n } else if (val_ % 3 == 0) {\n ex::set_value(std::move(rcvr_), \"Fizz\");\n } else if (val_ % 5 == 0) {\n ex::set_value(std::move(rcvr_), \"Buzz\");\n } else {\n ex::set_value(std::move(rcvr_), val_);\n }\n }\n\n Rcvr rcvr_;\n int val_;\n };\n\n template <typename Rcvr>\n auto connect(Rcvr rcvr) noexcept {\n return state{std::move(rcvr), val_};\n }\n\n int val_;\n};\n\ntemplate<typename... Ts>\nstruct overload : Ts... { using Ts::operator()...; };\n\nint main()\n{\n int val = 15;\n ex::sender auto sndr = ex::into_variant(FizzBuzzSender{val});\n auto [result] = std::this_thread::sync_wait(sndr).value();\n\n std::visit(overload{\n [](std::tuple<int> n) {\n std::println(\"(int) {}\", get<0>(n));\n },\n [](std::tuple<std::string> s) {\n std::println(\"(str) {}\", get<0>(s));\n }\n }, result);\n}\n"}], "page_id": ["reference", "execution", "execution", "into_variant"]}"> |
72 | 72 | <nav class="navbar navbar-default" role="navigation"> |
73 | 73 | <div class="container-fluid"> |
74 | 74 | <div class="navbar-header"> |
|
200 | 200 |
|
201 | 201 | <p class="text-right"><small> |
202 | 202 | 最終更新日時(UTC): |
203 | | - <span itemprop="datePublished" content="2025-05-10T03:29:51"> |
204 | | - 2025年05月10日 03時29分51秒 |
| 203 | + <span itemprop="datePublished" content="2025-05-10T04:18:45"> |
| 204 | + 2025年05月10日 04時18分45秒 |
205 | 205 | </span> |
206 | 206 | <br/> |
207 | 207 | <span itemprop="author" itemscope itemtype="http://schema.org/Person"> |
@@ -281,12 +281,12 @@ <h2>カスタマイゼーションポイント</h2> |
281 | 281 | <p><a href="sender.html">Sender</a><code>sndr</code>に<a href="get-domain-early.html">関連付けられた実行ドメイン</a><code>dom</code>に対して、<code><a href="transform_sender.html">execution::transform_sender</a></code>経由でSender変換が行われる。 |
282 | 282 | <a href="default_domain.html">デフォルト実行ドメイン</a>では無変換。</p> |
283 | 283 | <h2>例</h2> |
284 | | -<p><div class="yata" id="8b51ddcceba68e0c09dbee5f0fdeadc043b1a313"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../../string.html"><string></a></span><span class="cp"></span> |
| 284 | +<p><div class="yata" id="05e7668357f603616f5342898e53247888e00673"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../../string.html"><string></a></span><span class="cp"></span> |
285 | 285 | <span class="cp">#include</span> <span class="cpf"><a href="../../tuple.html"><tuple></a></span><span class="cp"></span> |
286 | 286 | <span class="cp">#include</span> <span class="cpf"><a href="../../print.html"><print></a></span><span class="cp"></span> |
287 | 287 | <span class="cp">#include</span> <span class="cpf"><a href="../../variant.html"><variant></a></span><span class="cp"></span> |
288 | | -<span class="cp">#include</span> <span class="cpf"><stdexec/execution.hpp></span><span class="cp"></span> |
289 | | -<span class="k">namespace</span> <span class="n">ex</span> <span class="o">=</span> <span class="n">stdexec</span><span class="p">;</span> |
| 288 | +<span class="cp">#include</span> <span class="cpf"><a href="../../execution.html"><execution></a></span><span class="cp"></span> |
| 289 | +<span class="k">namespace</span> <span class="n">ex</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">execution</span><span class="p">;</span> |
290 | 290 |
|
291 | 291 | <span class="k">struct</span> <span class="n">FizzBuzzSender</span> <span class="p">{</span> |
292 | 292 | <span class="k">using</span> <span class="n">sender_concept</span> <span class="o">=</span> <span class="n"><a href="sender.html">ex::sender_t</a></span><span class="p">;</span> |
|
0 commit comments