Skip to content

Commit f5fc411

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 404ea21 commit f5fc411

35 files changed

Lines changed: 1091 additions & 401 deletions

File tree

lang/cpp11/static_initialization_thread_safely.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;cpp&#34;: [&#34;cpp11&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;7e76dfce3853223fb170c9d79858dc934340c9e6&#34;, &#34;source&#34;: &#34;#include &lt;thread&gt;\n#include &lt;vector&gt;\n#include &lt;cassert&gt;\n\nclass singleton {\n int value_ = 3;\npublic:\n static singleton&amp; get_instance()\n {\n static singleton instance; // \u3053\u306e\u521d\u671f\u5316\u306f\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\n return instance;\n }\n\n int get() const\n { return value_; }\n};\n\nint main()\n{\n // 4\u30b9\u30ec\u30c3\u30c9\u3067\u4e26\u884c\u306b\u3001\n // singleton\u306estatic\u5909\u6570\u3078\u3068\u30a2\u30af\u30bb\u30b9\u3059\u308b\n std::vector&lt;std::thread&gt; threads;\n for (int i = 0; i &lt; 4; ++i) {\n std::thread t([] {\n // singleton\u306e\u30e1\u30f3\u30d0\u5909\u6570value_\u304c\n // \u5e38\u306b\u521d\u671f\u5316\u3055\u308c\u305f\u72b6\u614b\u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\n assert(singleton::get_instance().get() == 3);\n });\n threads.push_back(std::move(t));\n }\n\n for (std::thread&amp; t : threads) {\n t.join();\n }\n}\n&#34;}], &#34;page_id&#34;: [&#34;lang&#34;, &#34;cpp11&#34;, &#34;static_initialization_thread_safely&#34;]}">
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;cpp&#34;: [&#34;cpp11&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;21ec01f1c4c0f7f8315d8dd5c10e5466865469e1&#34;, &#34;source&#34;: &#34;#include &lt;thread&gt;\n#include &lt;vector&gt;\n#include &lt;cassert&gt;\n#include &lt;utility&gt;\n\nclass singleton {\n int value_ = 3;\npublic:\n static singleton&amp; get_instance()\n {\n static singleton instance; // \u3053\u306e\u521d\u671f\u5316\u306f\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\n return instance;\n }\n\n int get() const\n { return value_; }\n};\n\nint main()\n{\n // 4\u30b9\u30ec\u30c3\u30c9\u3067\u4e26\u884c\u306b\u3001\n // singleton\u306estatic\u5909\u6570\u3078\u3068\u30a2\u30af\u30bb\u30b9\u3059\u308b\n std::vector&lt;std::thread&gt; threads;\n for (int i = 0; i &lt; 4; ++i) {\n std::thread t([] {\n // singleton\u306e\u30e1\u30f3\u30d0\u5909\u6570value_\u304c\n // \u5e38\u306b\u521d\u671f\u5316\u3055\u308c\u305f\u72b6\u614b\u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\n assert(singleton::get_instance().get() == 3);\n });\n threads.push_back(std::move(t));\n }\n\n for (std::thread&amp; t : threads) {\n t.join();\n }\n}\n&#34;}], &#34;page_id&#34;: [&#34;lang&#34;, &#34;cpp11&#34;, &#34;static_initialization_thread_safely&#34;]}">
7272
<nav class="navbar navbar-default" role="navigation">
7373
<div class="container-fluid">
7474
<div class="navbar-header">
@@ -189,12 +189,12 @@
189189
<p class="text-right"><small>
190190
最終更新日時:
191191
<time itemprop="datePublished" class="js-local-time"
192-
datetime="2025-07-10T10:26:30+09:00">
193-
2025年07月10日 10時26分30秒 (JST)
192+
datetime="2026-07-22T11:09:53+09:00">
193+
2026年07月22日 11時09分53秒 (JST)
194194
</time>
195195
<br/>
196196
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
197-
<span itemprop="name">Koichi Murase</span>
197+
<span itemprop="name">rotarymars</span>
198198
</span>
199199
が更新
200200
</small></p>
@@ -270,9 +270,10 @@ <h3>static変数のデストラクタ</h3>
270270
<li><code>static</code>変数のデストラクタは、全てのスレッドが終了したあとに、宣言と逆の順番にデストラクタが呼び出され、破棄される</li>
271271
</ul>
272272
<h2></h2>
273-
<p><div class="yata" id="7e76dfce3853223fb170c9d79858dc934340c9e6"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../../reference/thread.html">&lt;thread&gt;</a></span>
273+
<p><div class="yata" id="21ec01f1c4c0f7f8315d8dd5c10e5466865469e1"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../../reference/thread.html">&lt;thread&gt;</a></span>
274274
<span class="cp">#include <a href="../../reference/vector.html">&lt;vector&gt;</a></span>
275275
<span class="cp">#include <a href="../../reference/cassert.html">&lt;cassert&gt;</a></span>
276+
<span class="cp">#include <a href="../../reference/utility.html">&lt;utility&gt;</a></span>
276277

277278
<span class="k">class</span><span class="w"> </span><span class="nc">singleton</span><span class="w"> </span><span class="p">{</span>
278279
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">value_</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span>

reference/any/any/op_assign.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;any&#34;], &#34;namespace&#34;: [&#34;std&#34;], &#34;class&#34;: [&#34;any&#34;], &#34;id-type&#34;: [&#34;function&#34;], &#34;cpp&#34;: [&#34;cpp17&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;7a9553b455b6d3f4dcae4560602ebb6cc765e9b3&#34;, &#34;source&#34;: &#34;#include &lt;any&gt;\n#include &lt;string&gt;\n#include &lt;vector&gt;\n#include &lt;cassert&gt;\n\nint main()\n{\n // (1)\n {\n std::any a = 3;\n std::any b;\n\n b = a;\n\n assert(std::any_cast&lt;int&gt;(a) == 3);\n assert(std::any_cast&lt;int&gt;(b) == 3);\n }\n\n // (2)\n {\n std::any a = std::string(\&#34;Hello\&#34;);\n std::any b;\n\n b = std::move(a);\n\n assert(std::any_cast&lt;std::string&gt;(b) == \&#34;Hello\&#34;);\n }\n\n // (3)\n {\n std::any a, b;\n\n a = 3;\n b = std::string(\&#34;Hello\&#34;);\n\n assert(std::any_cast&lt;int&gt;(a) == 3);\n assert(std::any_cast&lt;std::string&gt;(b) == \&#34;Hello\&#34;);\n }\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;any&#34;, &#34;any&#34;, &#34;op_assign&#34;]}">
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;any&#34;], &#34;namespace&#34;: [&#34;std&#34;], &#34;class&#34;: [&#34;any&#34;], &#34;id-type&#34;: [&#34;function&#34;], &#34;cpp&#34;: [&#34;cpp17&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;96e9c22d4190503e427bc299277c39b122bbc050&#34;, &#34;source&#34;: &#34;#include &lt;any&gt;\n#include &lt;string&gt;\n#include &lt;vector&gt;\n#include &lt;cassert&gt;\n#include &lt;utility&gt;\n\nint main()\n{\n // (1)\n {\n std::any a = 3;\n std::any b;\n\n b = a;\n\n assert(std::any_cast&lt;int&gt;(a) == 3);\n assert(std::any_cast&lt;int&gt;(b) == 3);\n }\n\n // (2)\n {\n std::any a = std::string(\&#34;Hello\&#34;);\n std::any b;\n\n b = std::move(a);\n\n assert(std::any_cast&lt;std::string&gt;(b) == \&#34;Hello\&#34;);\n }\n\n // (3)\n {\n std::any a, b;\n\n a = 3;\n b = std::string(\&#34;Hello\&#34;);\n\n assert(std::any_cast&lt;int&gt;(a) == 3);\n assert(std::any_cast&lt;std::string&gt;(b) == \&#34;Hello\&#34;);\n }\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;any&#34;, &#34;any&#34;, &#34;op_assign&#34;]}">
7272
<nav class="navbar navbar-default" role="navigation">
7373
<div class="container-fluid">
7474
<div class="navbar-header">
@@ -201,12 +201,12 @@
201201
<p class="text-right"><small>
202202
最終更新日時:
203203
<time itemprop="datePublished" class="js-local-time"
204-
datetime="2024-06-11T22:45:38+09:00">
205-
2024年06月11日 22時45分38秒 (JST)
204+
datetime="2026-07-22T11:09:53+09:00">
205+
2026年07月22日 11時09分53秒 (JST)
206206
</time>
207207
<br/>
208208
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
209-
<span itemprop="name">Akira Takahashi</span>
209+
<span itemprop="name">rotarymars</span>
210210
</span>
211211
が更新
212212
</small></p>
@@ -282,10 +282,11 @@ <h2><a class="cpprefjp-defined-word" data-desc="問題が発生したときに
282282
<li>(3) : 型<code><a href="../../type_traits/decay.html">std::decay_t&lt;T&gt;</a></code>の選択されたコンストラクタが、任意の<a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a>を送出する可能性がある</li>
283283
</ul>
284284
<h2></h2>
285-
<p><div class="yata" id="7a9553b455b6d3f4dcae4560602ebb6cc765e9b3"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../../any.html">&lt;any&gt;</a></span>
285+
<p><div class="yata" id="96e9c22d4190503e427bc299277c39b122bbc050"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../../any.html">&lt;any&gt;</a></span>
286286
<span class="cp">#include <a href="../../string.html">&lt;string&gt;</a></span>
287287
<span class="cp">#include <a href="../../vector.html">&lt;vector&gt;</a></span>
288288
<span class="cp">#include <a href="../../cassert.html">&lt;cassert&gt;</a></span>
289+
<span class="cp">#include <a href="../../utility.html">&lt;utility&gt;</a></span>
289290

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

reference/any/any/op_constructor.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;any&#34;], &#34;namespace&#34;: [&#34;std&#34;], &#34;class&#34;: [&#34;any&#34;], &#34;id-type&#34;: [&#34;function&#34;], &#34;cpp&#34;: [&#34;cpp17&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;3134ab6a4262c0b5cd1cbb1d7bd14127655bc475&#34;, &#34;source&#34;: &#34;#include &lt;any&gt;\n#include &lt;string&gt;\n#include &lt;vector&gt;\n#include &lt;cassert&gt;\n\nint main()\n{\n // (1)\n {\n std::any x;\n assert(!x.has_value());\n }\n\n // (2)\n {\n std::any a = 3;\n std::any b = a;\n\n assert(std::any_cast&lt;int&gt;(a) == 3);\n assert(std::any_cast&lt;int&gt;(b) == 3);\n }\n\n // (3)\n {\n std::any a = std::string(\&#34;Hello\&#34;);\n std::any b = std::move(a);\n\n assert(std::any_cast&lt;std::string&gt;(b) == \&#34;Hello\&#34;);\n }\n\n // (4)\n {\n std::any a = 3;\n std::any b = std::string(\&#34;Hello\&#34;);\n\n assert(std::any_cast&lt;int&gt;(a) == 3);\n assert(std::any_cast&lt;std::string&gt;(b) == \&#34;Hello\&#34;);\n }\n\n // (5)\n {\n std::any x {\n std::in_place_type&lt;std::string&gt;,\n 3,\n &#39;z&#39;\n };\n\n assert(std::any_cast&lt;std::string&gt;(x) == \&#34;zzz\&#34;);\n }\n\n // (6)\n {\n std::allocator&lt;int&gt; alloc;\n std::any x {\n std::in_place_type&lt;std::vector&lt;int&gt;&gt;,\n {3, 1, 4},\n alloc\n };\n\n const auto&amp; vec = std::any_cast&lt;const std::vector&lt;int&gt;&amp;&gt;(x);\n assert(vec[0] == 3);\n assert(vec[1] == 1);\n assert(vec[2] == 4);\n }\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;any&#34;, &#34;any&#34;, &#34;op_constructor&#34;]}">
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;any&#34;], &#34;namespace&#34;: [&#34;std&#34;], &#34;class&#34;: [&#34;any&#34;], &#34;id-type&#34;: [&#34;function&#34;], &#34;cpp&#34;: [&#34;cpp17&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;658833a7434fdb0dbc3c2921c79645ac9bc76065&#34;, &#34;source&#34;: &#34;#include &lt;any&gt;\n#include &lt;string&gt;\n#include &lt;vector&gt;\n#include &lt;cassert&gt;\n#include &lt;utility&gt;\n\nint main()\n{\n // (1)\n {\n std::any x;\n assert(!x.has_value());\n }\n\n // (2)\n {\n std::any a = 3;\n std::any b = a;\n\n assert(std::any_cast&lt;int&gt;(a) == 3);\n assert(std::any_cast&lt;int&gt;(b) == 3);\n }\n\n // (3)\n {\n std::any a = std::string(\&#34;Hello\&#34;);\n std::any b = std::move(a);\n\n assert(std::any_cast&lt;std::string&gt;(b) == \&#34;Hello\&#34;);\n }\n\n // (4)\n {\n std::any a = 3;\n std::any b = std::string(\&#34;Hello\&#34;);\n\n assert(std::any_cast&lt;int&gt;(a) == 3);\n assert(std::any_cast&lt;std::string&gt;(b) == \&#34;Hello\&#34;);\n }\n\n // (5)\n {\n std::any x {\n std::in_place_type&lt;std::string&gt;,\n 3,\n &#39;z&#39;\n };\n\n assert(std::any_cast&lt;std::string&gt;(x) == \&#34;zzz\&#34;);\n }\n\n // (6)\n {\n std::allocator&lt;int&gt; alloc;\n std::any x {\n std::in_place_type&lt;std::vector&lt;int&gt;&gt;,\n {3, 1, 4},\n alloc\n };\n\n const auto&amp; vec = std::any_cast&lt;const std::vector&lt;int&gt;&amp;&gt;(x);\n assert(vec[0] == 3);\n assert(vec[1] == 1);\n assert(vec[2] == 4);\n }\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;any&#34;, &#34;any&#34;, &#34;op_constructor&#34;]}">
7272
<nav class="navbar navbar-default" role="navigation">
7373
<div class="container-fluid">
7474
<div class="navbar-header">
@@ -201,12 +201,12 @@
201201
<p class="text-right"><small>
202202
最終更新日時:
203203
<time itemprop="datePublished" class="js-local-time"
204-
datetime="2024-06-11T22:45:38+09:00">
205-
2024年06月11日 22時45分38秒 (JST)
204+
datetime="2026-07-22T11:09:53+09:00">
205+
2026年07月22日 11時09分53秒 (JST)
206206
</time>
207207
<br/>
208208
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
209-
<span itemprop="name">Akira Takahashi</span>
209+
<span itemprop="name">rotarymars</span>
210210
</span>
211211
が更新
212212
</small></p>
@@ -300,10 +300,11 @@ <h2><a class="cpprefjp-defined-word" data-desc="問題が発生したときに
300300
<li>(4), (5), (6) : 型<code><a href="../../type_traits/decay.html">std::decay_t&lt;T&gt;</a></code>の選択されたコンストラクタが、任意の<a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a>を送出する可能性がある</li>
301301
</ul>
302302
<h2></h2>
303-
<p><div class="yata" id="3134ab6a4262c0b5cd1cbb1d7bd14127655bc475"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../../any.html">&lt;any&gt;</a></span>
303+
<p><div class="yata" id="658833a7434fdb0dbc3c2921c79645ac9bc76065"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../../any.html">&lt;any&gt;</a></span>
304304
<span class="cp">#include <a href="../../string.html">&lt;string&gt;</a></span>
305305
<span class="cp">#include <a href="../../vector.html">&lt;vector&gt;</a></span>
306306
<span class="cp">#include <a href="../../cassert.html">&lt;cassert&gt;</a></span>
307+
<span class="cp">#include <a href="../../utility.html">&lt;utility&gt;</a></span>
307308

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

0 commit comments

Comments
 (0)