|
68 | 68 |
|
69 | 69 | </head>
|
70 | 70 | <body>
|
71 |
| -<header data-kunai-mdinfo="{"meta": {"header": ["execution"], "namespace": ["std::execution"], "class": ["env"], "id-type": ["function template"], "cpp": ["cpp26"]}, "sources": [{"id": "23be9c241be58ee06dc0832d043754f27ca8c656", "source": "#include <concepts>\n#include <stop_token>\n#include <execution>\nusing ex = std::execution;\n\nint main()\n{\n auto env = ex::env{\n ex::prop(std::get_stop_token, std::stop_token{}),\n ex::prop(std::get_allocator, std::allocator<std::byte>{}),\n ex::prop(std::get_stop_token, std::never_stop_token{}),\n };\n\n auto token = env.query(std::get_stop_token);\n static_assert(std::same_as<decltype(token), std::stop_token>);\n}\n"}], "page_id": ["reference", "execution", "execution", "env", "query"]}"> |
| 71 | +<header data-kunai-mdinfo="{"meta": {"header": ["execution"], "namespace": ["std::execution"], "class": ["env"], "id-type": ["function template"], "cpp": ["cpp26"]}, "sources": [{"id": "5aac06d595511645f98c51538518cd7c8e486728", "source": "#include <concepts>\n#include <stop_token>\n#include <execution>\nusing ex = std::execution;\n\nint main()\n{\n // get_stop_token,get_stop_token\u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308b\u30af\u30a8\u30ea\u53ef\u80fd\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\n auto env0 = ex::env{\n ex::prop(std::get_allocator, std::allocator<std::byte>{}),\n ex::prop(std::get_stop_token, std::never_stop_token{})\n };\n auto token0 = env0.query(std::get_stop_token);\n static_assert(std::same_as<decltype(token0), std::never_stop_token>);\n\n // env0\u306eget_stop_token\u30af\u30a8\u30ea\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u52d5\u4f5c\u3092\u4e0a\u66f8\u304d\n auto env1 = ex::env{\n ex::prop(std::get_stop_token, std::stop_token{}),\n env0\n };\n auto token1 = env1.query(std::get_stop_token);\n static_assert(std::same_as<decltype(token1), std::stop_token>);\n}\n"}], "page_id": ["reference", "execution", "execution", "env", "query"]}"> |
72 | 72 | <nav class="navbar navbar-default" role="navigation">
|
73 | 73 | <div class="container-fluid">
|
74 | 74 | <div class="navbar-header">
|
|
212 | 212 |
|
213 | 213 | <p class="text-right"><small>
|
214 | 214 | 最終更新日時(UTC):
|
215 |
| - <span itemprop="datePublished" content="2025-04-14T16:16:19"> |
216 |
| - 2025年04月14日 16時16分19秒 |
| 215 | + <span itemprop="datePublished" content="2025-04-15T15:33:52"> |
| 216 | + 2025年04月15日 15時33分52秒 |
217 | 217 | </span>
|
218 | 218 | <br/>
|
219 | 219 | <span itemprop="author" itemscope itemtype="http://schema.org/Person">
|
@@ -258,23 +258,31 @@ <h2>効果</h2>
|
258 | 258 | </code></pre></div>
|
259 | 259 | </p>
|
260 | 260 | <h2><a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a></h2>
|
261 |
| -<p>式<code>fe.query(q)</code>が<code>true</code>のとき、<a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a>送出しない。</p> |
| 261 | +<p>式<code>noexcept(fe.query(q))</code>が<code>true</code>のとき、<a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a>送出しない。 |
| 262 | +それ以外の場合、式<code>fe.query(q)</code>から送出される<a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a>。</p> |
262 | 263 | <h2>例</h2>
|
263 |
| -<p><div class="yata" id="23be9c241be58ee06dc0832d043754f27ca8c656"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../../../concepts.html"><concepts></a></span><span class="cp"></span> |
| 264 | +<p><div class="yata" id="5aac06d595511645f98c51538518cd7c8e486728"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../../../concepts.html"><concepts></a></span><span class="cp"></span> |
264 | 265 | <span class="cp">#include</span> <span class="cpf"><a href="../../../stop_token.html"><stop_token></a></span><span class="cp"></span>
|
265 | 266 | <span class="cp">#include</span> <span class="cpf"><a href="../../../execution.html"><execution></a></span><span class="cp"></span>
|
266 | 267 | <span class="k">using</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>
|
267 | 268 |
|
268 | 269 | <span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
|
269 | 270 | <span class="p">{</span>
|
270 |
| - <span class="k">auto</span> <span class="n">env</span> <span class="o">=</span> <span class="n"><a href="../env.html">ex::env</a></span><span class="p">{</span> |
271 |
| - <span class="n"><a href="../prop.html">ex::prop</a></span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">get_stop_token</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">stop_token</span><span class="p">{}),</span> |
| 271 | + <span class="c1">// get_stop_token,get_stop_tokenをサポートするクエリ可能オブジェクト</span> |
| 272 | + <span class="k">auto</span> <span class="n">env0</span> <span class="o">=</span> <span class="n"><a href="../env.html">ex::env</a></span><span class="p">{</span> |
272 | 273 | <span class="n"><a href="../prop.html">ex::prop</a></span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">get_allocator</span><span class="p">,</span> <span class="n"><a href="../../../memory/allocator.html">std::allocator</a></span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">byte</span><span class="o">></span><span class="p">{}),</span>
|
273 |
| - <span class="n"><a href="../prop.html">ex::prop</a></span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">get_stop_token</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">never_stop_token</span><span class="p">{}),</span> |
| 274 | + <span class="n"><a href="../prop.html">ex::prop</a></span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">get_stop_token</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">never_stop_token</span><span class="p">{})</span> |
274 | 275 | <span class="p">};</span>
|
| 276 | + <span class="k">auto</span> <span class="n">token0</span> <span class="o">=</span> <span class="n">env0</span><span class="p">.</span><span class="n"><span style="color:#ff0000">query</span></span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">get_stop_token</span><span class="p">);</span> |
| 277 | + <span class="k">static_assert</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n"><a href="../../../concepts/same_as.html">same_as</a></span><span class="o"><</span><span class="k">decltype</span><span class="p">(</span><span class="n">token0</span><span class="p">),</span> <span class="n">std</span><span class="o">::</span><span class="n">never_stop_token</span><span class="o">></span><span class="p">);</span> |
275 | 278 |
|
276 |
| - <span class="k">auto</span> <span class="n">token</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n"><span style="color:#ff0000">query</span></span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">get_stop_token</span><span class="p">);</span> |
277 |
| - <span class="k">static_assert</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n"><a href="../../../concepts/same_as.html">same_as</a></span><span class="o"><</span><span class="k">decltype</span><span class="p">(</span><span class="n">token</span><span class="p">),</span> <span class="n">std</span><span class="o">::</span><span class="n">stop_token</span><span class="o">></span><span class="p">);</span> |
| 279 | + <span class="c1">// env0のget_stop_tokenクエリオブジェクト動作を上書き</span> |
| 280 | + <span class="k">auto</span> <span class="n">env1</span> <span class="o">=</span> <span class="n"><a href="../env.html">ex::env</a></span><span class="p">{</span> |
| 281 | + <span class="n"><a href="../prop.html">ex::prop</a></span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">get_stop_token</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">stop_token</span><span class="p">{}),</span> |
| 282 | + <span class="n">env0</span> |
| 283 | + <span class="p">};</span> |
| 284 | + <span class="k">auto</span> <span class="n">token1</span> <span class="o">=</span> <span class="n">env1</span><span class="p">.</span><span class="n"><span style="color:#ff0000">query</span></span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">get_stop_token</span><span class="p">);</span> |
| 285 | + <span class="k">static_assert</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n"><a href="../../../concepts/same_as.html">same_as</a></span><span class="o"><</span><span class="k">decltype</span><span class="p">(</span><span class="n">token1</span><span class="p">),</span> <span class="n">std</span><span class="o">::</span><span class="n">stop_token</span><span class="o">></span><span class="p">);</span> |
278 | 286 | <span class="p">}</span>
|
279 | 287 | </code></pre></div>
|
280 | 288 | </div></p>
|
|
0 commit comments