Skip to content

Commit 614869e

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent bc21a38 commit 614869e

File tree

21 files changed

+442
-4100
lines changed

21 files changed

+442
-4100
lines changed

lang/cpp20/coroutines.html

Lines changed: 9 additions & 6 deletions
Large diffs are not rendered by default.

reference/algorithm/ranges_set_intersection.html

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868

6969
</head>
7070
<body>
71-
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;algorithm&#34;], &#34;namespace&#34;: [&#34;std::ranges&#34;], &#34;id-type&#34;: [&#34;function template&#34;], &#34;cpp&#34;: [&#34;cpp20&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;f39c3df6cc76f9ea5d60808ad01f8be6990545c8&#34;, &#34;source&#34;: &#34;#include &lt;iostream&gt;\n#include &lt;set&gt;\n#include &lt;algorithm&gt;\n\nint main()\n{\n std::multiset&lt;int&gt; a = {1, 2, 3, 4};\n std::multiset&lt;int&gt; b = {4, 5, 6, 2};\n std::multiset&lt;int&gt; result;\n\n // a\u3068b\u306e\u7a4d\u96c6\u5408\u3092\u4f5c\u308b\n std::ranges::set_intersection(a, b, std::inserter(result, result.end()));\n\n for (int x : result) {\n std::cout &lt;&lt; x &lt;&lt; std::endl;\n }\n}\n&#34;}, {&#34;id&#34;: &#34;b8ad0eb90ea70ab77b708e50edde1fb31840bf46&#34;, &#34;source&#34;: &#34;#include &lt;iostream&gt;\n#include &lt;vector&gt;\n#include &lt;algorithm&gt;\n#include &lt;execution&gt;\n\nint main()\n{\n std::vector&lt;int&gt; a = {1, 2, 3, 4};\n std::vector&lt;int&gt; b = {2, 4, 5, 6};\n std::vector&lt;int&gt; result(std::min(a.size(), b.size()));\n\n // \u4e26\u5217\u306ba\u3068b\u306e\u7a4d\u96c6\u5408\u3092\u4f5c\u308b\n auto ret = std::ranges::set_intersection(\n std::execution::par,\n a,\n b,\n result\n );\n\n for (auto it = result.begin(); it != ret.out; ++it) {\n std::cout &lt;&lt; *it &lt;&lt; &#39; &#39;;\n }\n std::cout &lt;&lt; std::endl;\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;algorithm&#34;, &#34;ranges_set_intersection&#34;]}">
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;algorithm&#34;], &#34;namespace&#34;: [&#34;std::ranges&#34;], &#34;id-type&#34;: [&#34;function template&#34;], &#34;cpp&#34;: [&#34;cpp20&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;c15fe123459e82638a83598f8cb9573609606993&#34;, &#34;source&#34;: &#34;#include &lt;iostream&gt;\n#include &lt;set&gt;\n#include &lt;algorithm&gt;\n#include &lt;iterator&gt; // std::inserter()\n\nint main()\n{\n std::multiset&lt;int&gt; a = {1, 2, 3, 4};\n std::multiset&lt;int&gt; b = {4, 5, 6, 2};\n std::multiset&lt;int&gt; result;\n\n // a\u3068b\u306e\u7a4d\u96c6\u5408\u3092\u4f5c\u308b\n std::ranges::set_intersection(a, b, std::inserter(result, result.end()));\n\n for (int x : result) {\n std::cout &lt;&lt; x &lt;&lt; std::endl;\n }\n}\n&#34;}, {&#34;id&#34;: &#34;b8ad0eb90ea70ab77b708e50edde1fb31840bf46&#34;, &#34;source&#34;: &#34;#include &lt;iostream&gt;\n#include &lt;vector&gt;\n#include &lt;algorithm&gt;\n#include &lt;execution&gt;\n\nint main()\n{\n std::vector&lt;int&gt; a = {1, 2, 3, 4};\n std::vector&lt;int&gt; b = {2, 4, 5, 6};\n std::vector&lt;int&gt; result(std::min(a.size(), b.size()));\n\n // \u4e26\u5217\u306ba\u3068b\u306e\u7a4d\u96c6\u5408\u3092\u4f5c\u308b\n auto ret = std::ranges::set_intersection(\n std::execution::par,\n a,\n b,\n result\n );\n\n for (auto it = result.begin(); it != ret.out; ++it) {\n std::cout &lt;&lt; *it &lt;&lt; &#39; &#39;;\n }\n std::cout &lt;&lt; std::endl;\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;algorithm&#34;, &#34;ranges_set_intersection&#34;]}">
7272
<nav class="navbar navbar-default" role="navigation">
7373
<div class="container-fluid">
7474
<div class="navbar-header">
@@ -188,12 +188,12 @@
188188

189189
<p class="text-right"><small>
190190
最終更新日時(UTC):
191-
<span itemprop="datePublished" content="2026-02-05T04:53:18">
192-
2026年02月05日 04時53分18秒
191+
<span itemprop="datePublished" content="2026-03-23T12:31:23">
192+
2026年03月23日 12時31分23秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
196-
<span itemprop="name">Akira Takahashi</span>
196+
<span itemprop="name">Raclamusi</span>
197197
</span>
198198
が更新
199199
</small></p>
@@ -326,9 +326,10 @@ <h2>備考</h2>
326326
<p><code>[first1,last1)</code><code>m</code> 個、<code>[first2,last2)</code><code>n</code> 個の等価な要素を含んでいる場合、<code>[first1,last1)</code> から最初の <code><a href="min.html">min</a>(m, n)</code> 要素が出力の範囲へ順番にコピーされる。</p>
327327
<h2></h2>
328328
<h3>基本的な使い方</h3>
329-
<p><div class="yata" id="f39c3df6cc76f9ea5d60808ad01f8be6990545c8"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../iostream.html">&lt;iostream&gt;</a></span>
329+
<p><div class="yata" id="c15fe123459e82638a83598f8cb9573609606993"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../iostream.html">&lt;iostream&gt;</a></span>
330330
<span class="cp">#include <a href="../set.html">&lt;set&gt;</a></span>
331331
<span class="cp">#include <a href="../algorithm.html">&lt;algorithm&gt;</a></span>
332+
<span class="cp">#include <a href="../iterator.html">&lt;iterator&gt;</a> </span><span class="c1">// <a href="../iterator/inserter.html">std::inserter</a>()</span>
332333

333334
<span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span>
334335
<span class="p">{</span>

reference/barrier/barrier.html

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868

6969
</head>
7070
<body>
71-
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;barrier&#34;], &#34;namespace&#34;: [&#34;std&#34;], &#34;id-type&#34;: [&#34;class template&#34;], &#34;cpp&#34;: [&#34;cpp20&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;9fd951e4eda7df2811f2d2cbf7c82672ed4572ad&#34;, &#34;source&#34;: &#34;#include &lt;barrier&gt;\n#include &lt;iostream&gt;\n#include &lt;thread&gt;\n\nconstexpr int NWORKERS = 2; // \u30ef\u30fc\u30ab\u6570\nconstexpr int NPHASES = 3; // \u30d5\u30a7\u30fc\u30ba\u6570\n\nstd::mutex cout_mtx; // \u884c\u5358\u4f4dcout\u51fa\u529b\u7528\u30df\u30e5\u30fc\u30c6\u30c3\u30af\u30b9\n\n// \u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306f (NWORKERS+1)*NPHASES = 9\u500b\u306e\u30bf\u30b9\u30af\u3092\u5b9f\u884c\u3059\u308b\u3002\n// \u540c\u3058\u30d5\u30a7\u30fc\u30ba\u306b\u5c5e\u3059\u308b\u30bf\u30b9\u30af\u306f\u8907\u6570\u306e\u30b9\u30ec\u30c3\u30c9\u4e0a\u3067\u540c\u6642\u4e26\u884c\u306b\u5b9f\u884c\u3055\u308c\u308b\u4e00\u65b9\u3001\n// \u30d0\u30ea\u30a2\u306b\u3088\u308a\u7570\u306a\u308b\u30d5\u30a7\u30fc\u30ba\u306b\u5c5e\u3059\u308b\u30bf\u30b9\u30af\u304c\u540c\u6642\u5b9f\u884c\u3055\u308c\u306a\u3044\u3053\u3068\u3092\u4fdd\u8a3c\u3059\u308b\u3002\n// \u3053\u3053\u3067\u306f\u5468\u671f\u7684\u306aFork-Join\u30e2\u30c7\u30eb\u306e\u30bf\u30b9\u30af\u4e26\u884c\u5b9f\u884c\u304c\u884c\u308f\u308c\u308b\u3002\nint main()\n{\n // \u30d0\u30ea\u30a2\u540c\u671f: \u521d\u671f\u30ab\u30a6\u30f3\u30c8\u5024=\u30ef\u30fc\u30ab\u6570+1(\u30e1\u30a4\u30f3\u30b9\u30ec\u30c3\u30c9)\n std::barrier&lt;&gt; sync{NWORKERS+1};\n\n // \u30ef\u30fc\u30ab\u30b9\u30ec\u30c3\u30c9\u7fa4\u3092Fire-and-Forget\u8d77\u52d5\n for (int id = 1; id &lt;= NWORKERS; id++) {\n std::thread([&amp;,id]{\n for (int phase = 1; phase &lt;= NPHASES; phase++) {\n { // \u30ef\u30fc\u30ab\u30b9\u30ec\u30c3\u30c9\u306e\u30d5\u30a7\u30fc\u30ba\u30bf\u30b9\u30af\u3092\u5b9f\u884c\n std::lock_guard lk{cout_mtx};\n std::cout &lt;&lt; \&#34;Worker#\&#34; &lt;&lt; id &lt;&lt; \&#34; \&#34; &lt;&lt; phase &lt;&lt; std::endl;\n }\n\n // \u5408\u6d41\u30dd\u30a4\u30f3\u30c8: \u30e1\u30a4\u30f3\u30b9\u30ec\u30c3\u30c9\uff0b\u4ed6\u30ef\u30fc\u30ab\u30b9\u30ec\u30c3\u30c9\u3068\u540c\u671f\n sync.arrive_and_wait();\n }\n }).detach();\n }\n\n // \u30e1\u30a4\u30f3\u30b9\u30ec\u30c3\u30c9\u51e6\u7406\n for (int phase = 1; phase &lt;= NPHASES; phase++) {\n { // \u30e1\u30a4\u30f3\u30b9\u30ec\u30c3\u30c9\u306e\u30d5\u30a7\u30fc\u30ba\u30bf\u30b9\u30af\u3092\u5b9f\u884c\n std::lock_guard lk{cout_mtx};\n std::cout &lt;&lt; \&#34;Main \&#34; &lt;&lt; phase &lt;&lt; std::endl;\n }\n\n // \u5408\u6d41\u30dd\u30a4\u30f3\u30c8: \u5168\u30ef\u30fc\u30ab\u30b9\u30ec\u30c3\u30c9\u3068\u540c\u671f\n sync.arrive_and_wait();\n }\n}\n&#34;}, {&#34;id&#34;: &#34;e348b9e6879265860c24155cd5f26c80c26f0779&#34;, &#34;source&#34;: &#34;#include &lt;barrier&gt;\n#include &lt;iostream&gt;\n#include &lt;mutex&gt;\n#include &lt;string&gt;\n#include &lt;thread&gt;\n#include &lt;vector&gt;\n#include &lt;functional&gt; // for std::ref\n\n// \u5404\u30d5\u30a7\u30fc\u30ba\u5b8c\u4e86\u6642\u306b\u547c\u3073\u51fa\u3055\u308c\u308b\u5b8c\u4e86\u95a2\u6570\nstruct PhaseNotifier {\n void operator()() const noexcept {\n std::lock_guard lk{cout_mtx};\n std::cout &lt;&lt; \&#34;Phase \&#34; &lt;&lt; current_phase &lt;&lt; \&#34; completed!\&#34; &lt;&lt; std::endl;\n current_phase++;\n }\n\n static inline std::mutex cout_mtx;\n static inline int current_phase = 1;\n};\n\nvoid worker_task(int id, std::barrier&lt;PhaseNotifier&gt;&amp; sync, int phases) {\n for (int phase = 1; phase &lt;= phases; phase++) {\n // \u5404\u30ef\u30fc\u30ab\u30fc\u304c\u30d5\u30a7\u30fc\u30ba\u306e\u4f5c\u696d\u3092\u5b9f\u884c\n {\n std::lock_guard lk{PhaseNotifier::cout_mtx};\n std::cout &lt;&lt; \&#34;Worker \&#34; &lt;&lt; id &lt;&lt; \&#34; executing phase \&#34; &lt;&lt; phase &lt;&lt; std::endl;\n }\n\n // \u30d5\u30a7\u30fc\u30ba\u5b8c\u4e86\u3092\u901a\u77e5\u3057\u3066\u6b21\u306e\u30d5\u30a7\u30fc\u30ba\u307e\u3067\u5f85\u6a5f\n // \u6700\u5f8c\u306e\u30b9\u30ec\u30c3\u30c9\u304c\u5230\u9054\u3059\u308b\u3068\u5b8c\u4e86\u95a2\u6570\u304c\u547c\u3073\u51fa\u3055\u308c\u308b\n sync.arrive_and_wait();\n }\n}\n\nint main() {\n constexpr int num_threads = 3;\n constexpr int num_phases = 3;\n\n // \u5b8c\u4e86\u901a\u77e5\u95a2\u6570\u3092\u6301\u3064\u30d0\u30ea\u30a2\n std::barrier sync{num_threads, PhaseNotifier{}};\n\n std::vector&lt;std::thread&gt; threads;\n\n // \u30b9\u30ec\u30c3\u30c9\u8d77\u52d5\n for (int i = 1; i &lt;= num_threads; i++) {\n threads.emplace_back(worker_task, i, std::ref(sync), num_phases);\n }\n\n // \u5168\u30b9\u30ec\u30c3\u30c9\u306e\u7d42\u4e86\u3092\u5f85\u6a5f\n for (auto&amp; t : threads) {\n t.join();\n }\n\n return 0;\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;barrier&#34;, &#34;barrier&#34;]}">
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;barrier&#34;], &#34;namespace&#34;: [&#34;std&#34;], &#34;id-type&#34;: [&#34;class template&#34;], &#34;cpp&#34;: [&#34;cpp20&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;d0030e069d1a4f8373ab560acc132f205000e4c7&#34;, &#34;source&#34;: &#34;#include &lt;barrier&gt;\n#include &lt;iostream&gt;\n#include &lt;thread&gt;\n#include &lt;mutex&gt;\n\nconstexpr int NWORKERS = 2; // \u30ef\u30fc\u30ab\u6570\nconstexpr int NPHASES = 3; // \u30d5\u30a7\u30fc\u30ba\u6570\n\nstd::mutex cout_mtx; // \u884c\u5358\u4f4dcout\u51fa\u529b\u7528\u30df\u30e5\u30fc\u30c6\u30c3\u30af\u30b9\n\n// \u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306f (NWORKERS+1)*NPHASES = 9\u500b\u306e\u30bf\u30b9\u30af\u3092\u5b9f\u884c\u3059\u308b\u3002\n// \u540c\u3058\u30d5\u30a7\u30fc\u30ba\u306b\u5c5e\u3059\u308b\u30bf\u30b9\u30af\u306f\u8907\u6570\u306e\u30b9\u30ec\u30c3\u30c9\u4e0a\u3067\u540c\u6642\u4e26\u884c\u306b\u5b9f\u884c\u3055\u308c\u308b\u4e00\u65b9\u3001\n// \u30d0\u30ea\u30a2\u306b\u3088\u308a\u7570\u306a\u308b\u30d5\u30a7\u30fc\u30ba\u306b\u5c5e\u3059\u308b\u30bf\u30b9\u30af\u304c\u540c\u6642\u5b9f\u884c\u3055\u308c\u306a\u3044\u3053\u3068\u3092\u4fdd\u8a3c\u3059\u308b\u3002\n// \u3053\u3053\u3067\u306f\u5468\u671f\u7684\u306aFork-Join\u30e2\u30c7\u30eb\u306e\u30bf\u30b9\u30af\u4e26\u884c\u5b9f\u884c\u304c\u884c\u308f\u308c\u308b\u3002\nint main()\n{\n // \u30d0\u30ea\u30a2\u540c\u671f: \u521d\u671f\u30ab\u30a6\u30f3\u30c8\u5024=\u30ef\u30fc\u30ab\u6570+1(\u30e1\u30a4\u30f3\u30b9\u30ec\u30c3\u30c9)\n std::barrier&lt;&gt; sync{NWORKERS+1};\n\n // \u30ef\u30fc\u30ab\u30b9\u30ec\u30c3\u30c9\u7fa4\u3092Fire-and-Forget\u8d77\u52d5\n for (int id = 1; id &lt;= NWORKERS; id++) {\n std::thread([&amp;,id]{\n for (int phase = 1; phase &lt;= NPHASES; phase++) {\n { // \u30ef\u30fc\u30ab\u30b9\u30ec\u30c3\u30c9\u306e\u30d5\u30a7\u30fc\u30ba\u30bf\u30b9\u30af\u3092\u5b9f\u884c\n std::lock_guard lk{cout_mtx};\n std::cout &lt;&lt; \&#34;Worker#\&#34; &lt;&lt; id &lt;&lt; \&#34; \&#34; &lt;&lt; phase &lt;&lt; std::endl;\n }\n\n // \u5408\u6d41\u30dd\u30a4\u30f3\u30c8: \u30e1\u30a4\u30f3\u30b9\u30ec\u30c3\u30c9\uff0b\u4ed6\u30ef\u30fc\u30ab\u30b9\u30ec\u30c3\u30c9\u3068\u540c\u671f\n sync.arrive_and_wait();\n }\n }).detach();\n }\n\n // \u30e1\u30a4\u30f3\u30b9\u30ec\u30c3\u30c9\u51e6\u7406\n for (int phase = 1; phase &lt;= NPHASES; phase++) {\n { // \u30e1\u30a4\u30f3\u30b9\u30ec\u30c3\u30c9\u306e\u30d5\u30a7\u30fc\u30ba\u30bf\u30b9\u30af\u3092\u5b9f\u884c\n std::lock_guard lk{cout_mtx};\n std::cout &lt;&lt; \&#34;Main \&#34; &lt;&lt; phase &lt;&lt; std::endl;\n }\n\n // \u5408\u6d41\u30dd\u30a4\u30f3\u30c8: \u5168\u30ef\u30fc\u30ab\u30b9\u30ec\u30c3\u30c9\u3068\u540c\u671f\n sync.arrive_and_wait();\n }\n}\n&#34;}, {&#34;id&#34;: &#34;e348b9e6879265860c24155cd5f26c80c26f0779&#34;, &#34;source&#34;: &#34;#include &lt;barrier&gt;\n#include &lt;iostream&gt;\n#include &lt;mutex&gt;\n#include &lt;string&gt;\n#include &lt;thread&gt;\n#include &lt;vector&gt;\n#include &lt;functional&gt; // for std::ref\n\n// \u5404\u30d5\u30a7\u30fc\u30ba\u5b8c\u4e86\u6642\u306b\u547c\u3073\u51fa\u3055\u308c\u308b\u5b8c\u4e86\u95a2\u6570\nstruct PhaseNotifier {\n void operator()() const noexcept {\n std::lock_guard lk{cout_mtx};\n std::cout &lt;&lt; \&#34;Phase \&#34; &lt;&lt; current_phase &lt;&lt; \&#34; completed!\&#34; &lt;&lt; std::endl;\n current_phase++;\n }\n\n static inline std::mutex cout_mtx;\n static inline int current_phase = 1;\n};\n\nvoid worker_task(int id, std::barrier&lt;PhaseNotifier&gt;&amp; sync, int phases) {\n for (int phase = 1; phase &lt;= phases; phase++) {\n // \u5404\u30ef\u30fc\u30ab\u30fc\u304c\u30d5\u30a7\u30fc\u30ba\u306e\u4f5c\u696d\u3092\u5b9f\u884c\n {\n std::lock_guard lk{PhaseNotifier::cout_mtx};\n std::cout &lt;&lt; \&#34;Worker \&#34; &lt;&lt; id &lt;&lt; \&#34; executing phase \&#34; &lt;&lt; phase &lt;&lt; std::endl;\n }\n\n // \u30d5\u30a7\u30fc\u30ba\u5b8c\u4e86\u3092\u901a\u77e5\u3057\u3066\u6b21\u306e\u30d5\u30a7\u30fc\u30ba\u307e\u3067\u5f85\u6a5f\n // \u6700\u5f8c\u306e\u30b9\u30ec\u30c3\u30c9\u304c\u5230\u9054\u3059\u308b\u3068\u5b8c\u4e86\u95a2\u6570\u304c\u547c\u3073\u51fa\u3055\u308c\u308b\n sync.arrive_and_wait();\n }\n}\n\nint main() {\n constexpr int num_threads = 3;\n constexpr int num_phases = 3;\n\n // \u5b8c\u4e86\u901a\u77e5\u95a2\u6570\u3092\u6301\u3064\u30d0\u30ea\u30a2\n std::barrier sync{num_threads, PhaseNotifier{}};\n\n std::vector&lt;std::thread&gt; threads;\n\n // \u30b9\u30ec\u30c3\u30c9\u8d77\u52d5\n for (int i = 1; i &lt;= num_threads; i++) {\n threads.emplace_back(worker_task, i, std::ref(sync), num_phases);\n }\n\n // \u5168\u30b9\u30ec\u30c3\u30c9\u306e\u7d42\u4e86\u3092\u5f85\u6a5f\n for (auto&amp; t : threads) {\n t.join();\n }\n\n return 0;\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;barrier&#34;, &#34;barrier&#34;]}">
7272
<nav class="navbar navbar-default" role="navigation">
7373
<div class="container-fluid">
7474
<div class="navbar-header">
@@ -188,12 +188,12 @@
188188

189189
<p class="text-right"><small>
190190
最終更新日時(UTC):
191-
<span itemprop="datePublished" content="2025-07-14T14:04:00">
192-
2025年07月14日 14時04分00秒
191+
<span itemprop="datePublished" content="2026-03-23T12:31:23">
192+
2026年03月23日 12時31分23秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
196-
<span itemprop="name">Koichi Murase</span>
196+
<span itemprop="name">Raclamusi</span>
197197
</span>
198198
が更新
199199
</small></p>
@@ -337,9 +337,10 @@ <h2>メンバ型</h2>
337337
</tbody>
338338
</table>
339339
<h2></h2>
340-
<p><div class="yata" id="9fd951e4eda7df2811f2d2cbf7c82672ed4572ad"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../barrier.html">&lt;barrier&gt;</a></span>
340+
<p><div class="yata" id="d0030e069d1a4f8373ab560acc132f205000e4c7"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../barrier.html">&lt;barrier&gt;</a></span>
341341
<span class="cp">#include <a href="../iostream.html">&lt;iostream&gt;</a></span>
342342
<span class="cp">#include <a href="../thread.html">&lt;thread&gt;</a></span>
343+
<span class="cp">#include <a href="../mutex.html">&lt;mutex&gt;</a></span>
343344

344345
<span class="k">constexpr</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">NWORKERS</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// ワーカ数</span>
345346
<span class="k">constexpr</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">NPHASES</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span><span class="w"> </span><span class="c1">// フェーズ数</span>

0 commit comments

Comments
 (0)