|
28 | 28 | <meta property="og:url" content="https://cpprefjp.github.io/reference/atomic/atomic_flag_init.html" />
|
29 | 29 | <meta property="og:site_name" content="cpprefjp - C++日本語リファレンス" />
|
30 | 30 | <meta property="og:type" content="article" />
|
31 |
| - <meta property="og:description" content="フラグを初期化する。" /> |
| 31 | + <meta property="og:description" content="フラグをクリア状態に初期化する。" /> |
32 | 32 | <meta name="twitter:card" content="summary" />
|
33 | 33 | <meta name="twitter:title" content="ATOMIC_FLAG_INIT - cpprefjp C++日本語リファレンス" />
|
34 | 34 | <meta name="twitter:url" content="https://cpprefjp.github.io/reference/atomic/atomic_flag_init.html" />
|
35 |
| - <meta name="twitter:description" content="フラグを初期化する。" /> |
| 35 | + <meta name="twitter:description" content="フラグをクリア状態に初期化する。" /> |
36 | 36 |
|
37 | 37 |
|
38 | 38 | <link rel="alternate" type="application/atom+xml" title="Atom" href="https://cpprefjp.github.io/rss.xml" />
|
|
68 | 68 |
|
69 | 69 | </head>
|
70 | 70 | <body>
|
71 |
| -<header data-kunai-mdinfo="{"meta": {"header": ["atomic"], "id-type": ["macro"], "cpp": ["cpp11", "cpp20deprecated"]}, "sources": [{"id": "e72ff206572e923c5d0bd069dba01669a7ee071f", "source": "#include <iostream>\n#include <atomic>\n\nint main()\n{\n std::atomic_flag x = ATOMIC_FLAG_INIT;\n\n // \u30d5\u30e9\u30b0\u3092\u7acb\u3066\u3001\u5909\u66f4\u524d\u306e\u5024\u3092\u78ba\u8a8d\u3059\u308b\n bool before = x.test_and_set();\n std::cout << std::boolalpha << before << std::endl;\n}\n"}], "page_id": ["reference", "atomic", "atomic_flag_init"]}"> |
| 71 | +<header data-kunai-mdinfo="{"meta": {"header": ["atomic"], "id-type": ["macro"], "cpp": ["cpp11"]}, "sources": [{"id": "e72ff206572e923c5d0bd069dba01669a7ee071f", "source": "#include <iostream>\n#include <atomic>\n\nint main()\n{\n std::atomic_flag x = ATOMIC_FLAG_INIT;\n\n // \u30d5\u30e9\u30b0\u3092\u7acb\u3066\u3001\u5909\u66f4\u524d\u306e\u5024\u3092\u78ba\u8a8d\u3059\u308b\n bool before = x.test_and_set();\n std::cout << std::boolalpha << before << std::endl;\n}\n"}], "page_id": ["reference", "atomic", "atomic_flag_init"]}"> |
72 | 72 | <nav class="navbar navbar-default" role="navigation">
|
73 | 73 | <div class="container-fluid">
|
74 | 74 | <div class="navbar-header">
|
|
188 | 188 |
|
189 | 189 | <p class="text-right"><small>
|
190 | 190 | 最終更新日時(UTC):
|
191 |
| - <span itemprop="datePublished" content="2025-07-16T13:00:01"> |
192 |
| - 2025年07月16日 13時00分01秒 |
| 191 | + <span itemprop="datePublished" content="2025-07-25T10:26:24"> |
| 192 | + 2025年07月25日 10時26分24秒 |
193 | 193 | </span>
|
194 | 194 | <br/>
|
195 | 195 | <span itemprop="author" itemscope itemtype="http://schema.org/Person">
|
196 |
| - <span itemprop="name">Koichi Murase</span> |
| 196 | + <span itemprop="name">yoh</span> |
197 | 197 | </span>
|
198 | 198 | が更新
|
199 | 199 | </small></p>
|
|
212 | 212 | <div class="row">
|
213 | 213 | <div class="col-sm-12 content-body">
|
214 | 214 |
|
215 |
| - <div class="identifier-type">macro</div><div class="header"><atomic></div><h1 itemprop="name"><span class="token">ATOMIC_FLAG_INIT</span><span class="cpp cpp11" title="C++11で追加">(C++11)</span><span class="cpp cpp20deprecated text-warning" title="C++20で非推奨">(C++20で非推奨)</span></h1> |
| 215 | + <div class="identifier-type">macro</div><div class="header"><atomic></div><h1 itemprop="name"><span class="token">ATOMIC_FLAG_INIT</span><span class="cpp cpp11" title="C++11で追加">(C++11)</span></h1> |
216 | 216 | <div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="cp">#define ATOMIC_FLAG_INIT <i>see below</i></span>
|
217 | 217 | </code></pre></div>
|
218 | 218 | </p>
|
219 |
| -<p>この機能はC++20で非推奨となった。<code><a href="atomic_flag.html">std::atomic_flag</a></code>クラスのデフォルトコンストラクタが<a class="cpprefjp-defined-word" data-desc="`T x{};`構文での初期化。組み込み型の場合はゼロ相当の値で、クラス型の場合はデフォルトコンストラクタで初期化する。配列型の場合は各要素が再帰的に値初期化される">値初期化</a>するようになったため、初期化のためにこの機能を使用する必要はない。</p> |
220 | 219 | <h2>概要</h2>
|
221 |
| -<p>フラグを初期化する。</p> |
| 220 | +<p>フラグをクリア状態に初期化する。</p> |
222 | 221 | <p>このマクロは、<code><a href="atomic_flag.html">atomic_flag</a></code>オブジェクトの初期化に使用し、フラグをクリア状態にする。静的オブジェクトに対しては、その初期化は静的に行われなければならない。</p>
|
223 |
| -<h2>非推奨の詳細 (C++20)</h2> |
| 222 | +<h2>備考</h2> |
224 | 223 | <p>C言語との互換性のために、<code>std::atomic_flag</code>クラスのデフォルトコンストラクタはトリビアルに定義され、初期値は<a class="cpprefjp-defined-word" data-desc="未規定の動作。事前の断りなく処理系によって異なる動作をする" href="../../implementation-compliance.html#dfn-unspecified-behavior">未規定</a>となっていた。そのためこの機能を介して<code>std::atomic_flag</code>オブジェクトを初期化する必要があったが、C++20からデフォルトコンストラクタが<a class="cpprefjp-defined-word" data-desc="`T x{};`構文での初期化。組み込み型の場合はゼロ相当の値で、クラス型の場合はデフォルトコンストラクタで初期化する。配列型の場合は各要素が再帰的に値初期化される">値初期化</a>を行うようになったため、初期化のためにこの機能を使用する必要はなくなった。</p>
|
225 | 224 | <h2>例</h2>
|
226 | 225 | <p><div class="yata" id="e72ff206572e923c5d0bd069dba01669a7ee071f"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../iostream.html"><iostream></a></span><span class="cp"></span>
|
@@ -254,6 +253,7 @@ <h3>処理系</h3>
|
254 | 253 | <h2>参照</h2>
|
255 | 254 | <ul>
|
256 | 255 | <li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0883r2.pdf" target="_blank">P0883R2 Fixing Atomic Initialization, Rev2</a></li>
|
| 256 | +<li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#3659" target="_blank">LWG Issue 3659. Consider <code>ATOMIC_FLAG_INIT</code> undeprecation</a></li> |
257 | 257 | </ul></div>
|
258 | 258 |
|
259 | 259 | </div>
|
|
0 commit comments