Skip to content

Commit f02b081

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 9cdaf77 commit f02b081

File tree

6 files changed

+946
-39
lines changed

6 files changed

+946
-39
lines changed

reference/type_traits.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,8 @@
176176

177177
<p class="text-right"><small>
178178
最終更新日時(UTC):
179-
<span itemprop="datePublished" content="2024-07-18T16:39:47">
180-
2024年07月18日 16時39分47秒
179+
<span itemprop="datePublished" content="2025-01-10T08:54:05">
180+
2025年01月10日 08時54分05秒
181181
</span>
182182
<br/>
183183
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -393,7 +393,7 @@ <h2>型の特性</h2>
393393
<tr>
394394
<td><code><a href="type_traits/is_trivial.html">is_trivial</a></code></td>
395395
<td>型がトリビアル型か調べる (class template)</td>
396-
<td>C++11</td>
396+
<td>C++11<br />C++26から非推奨</td>
397397
</tr>
398398
<tr>
399399
<td><code><a href="type_traits/is_trivially_copyable.html">is_trivially_copyable</a></code></td>

reference/type_traits/is_trivial.html

Lines changed: 23 additions & 4 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;type_traits&#34;], &#34;namespace&#34;: [&#34;std&#34;], &#34;id-type&#34;: [&#34;class template&#34;], &#34;cpp&#34;: [&#34;cpp11&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;0aa8d668272aa6ad844224a2ec98c852630c221b&#34;, &#34;source&#34;: &#34;#include &lt;type_traits&gt;\n\nstatic_assert(std::is_trivial&lt;int&gt;::value == true, \&#34;value == true, int is trivial\&#34;);\nstatic_assert(std::is_same&lt;std::is_trivial&lt;int&gt;::value_type, bool&gt;::value, \&#34;value_type == bool\&#34;);\nstatic_assert(std::is_same&lt;std::is_trivial&lt;int&gt;::type, std::true_type&gt;::value, \&#34;type == true_type\&#34;);\nstatic_assert(std::is_trivial&lt;int&gt;() == true, \&#34;is_trivial&lt;int&gt;() == true\&#34;);\n\nstatic_assert(std::is_trivial&lt;int&amp;&gt;::value == false, \&#34;value == false, int&amp; is not trivial\&#34;);\nstatic_assert(std::is_same&lt;std::is_trivial&lt;int&amp;&gt;::value_type, bool&gt;::value, \&#34;value_type == bool\&#34;);\nstatic_assert(std::is_same&lt;std::is_trivial&lt;int&amp;&gt;::type, std::false_type&gt;::value, \&#34;type == false_type\&#34;);\nstatic_assert(std::is_trivial&lt;int&amp;&gt;() == false, \&#34;is_trivial&lt;int&amp;&gt;() == false\&#34;);\n\nstatic_assert(std::is_trivial&lt;const volatile int&gt;::value == true, \&#34;const volatile int is trivial\&#34;);\n\nclass trivial_class{};\nstruct non_trivial_class {\n non_trivial_class() {} // \u30c7\u30d5\u30a9\u30eb\u30c8\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c\u975e\u30c8\u30ea\u30d3\u30a2\u30eb\n};\nstatic_assert(std::is_trivial&lt;trivial_class&gt;::value == true, \&#34;trivial_class is trivial\&#34;);\nstatic_assert(std::is_trivial&lt;trivial_class&amp;&gt;::value == false, \&#34;trivial_class&amp; is not trivial\&#34;);\nstatic_assert(std::is_trivial&lt;non_trivial_class&gt;::value == false, \&#34;non_trivial_class is not trivial\&#34;);\nstatic_assert(std::is_trivial&lt;non_trivial_class&amp;&gt;::value == false, \&#34;non_trivial_class&amp; is not trivial\&#34;);\n\nint main(){}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;type_traits&#34;, &#34;is_trivial&#34;]}">
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;type_traits&#34;], &#34;namespace&#34;: [&#34;std&#34;], &#34;id-type&#34;: [&#34;class template&#34;], &#34;cpp&#34;: [&#34;cpp11&#34;, &#34;cpp26deprecated&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;0aa8d668272aa6ad844224a2ec98c852630c221b&#34;, &#34;source&#34;: &#34;#include &lt;type_traits&gt;\n\nstatic_assert(std::is_trivial&lt;int&gt;::value == true, \&#34;value == true, int is trivial\&#34;);\nstatic_assert(std::is_same&lt;std::is_trivial&lt;int&gt;::value_type, bool&gt;::value, \&#34;value_type == bool\&#34;);\nstatic_assert(std::is_same&lt;std::is_trivial&lt;int&gt;::type, std::true_type&gt;::value, \&#34;type == true_type\&#34;);\nstatic_assert(std::is_trivial&lt;int&gt;() == true, \&#34;is_trivial&lt;int&gt;() == true\&#34;);\n\nstatic_assert(std::is_trivial&lt;int&amp;&gt;::value == false, \&#34;value == false, int&amp; is not trivial\&#34;);\nstatic_assert(std::is_same&lt;std::is_trivial&lt;int&amp;&gt;::value_type, bool&gt;::value, \&#34;value_type == bool\&#34;);\nstatic_assert(std::is_same&lt;std::is_trivial&lt;int&amp;&gt;::type, std::false_type&gt;::value, \&#34;type == false_type\&#34;);\nstatic_assert(std::is_trivial&lt;int&amp;&gt;() == false, \&#34;is_trivial&lt;int&amp;&gt;() == false\&#34;);\n\nstatic_assert(std::is_trivial&lt;const volatile int&gt;::value == true, \&#34;const volatile int is trivial\&#34;);\n\nclass trivial_class{};\nstruct non_trivial_class {\n non_trivial_class() {} // \u30c7\u30d5\u30a9\u30eb\u30c8\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c\u975e\u30c8\u30ea\u30d3\u30a2\u30eb\n};\nstatic_assert(std::is_trivial&lt;trivial_class&gt;::value == true, \&#34;trivial_class is trivial\&#34;);\nstatic_assert(std::is_trivial&lt;trivial_class&amp;&gt;::value == false, \&#34;trivial_class&amp; is not trivial\&#34;);\nstatic_assert(std::is_trivial&lt;non_trivial_class&gt;::value == false, \&#34;non_trivial_class is not trivial\&#34;);\nstatic_assert(std::is_trivial&lt;non_trivial_class&amp;&gt;::value == false, \&#34;non_trivial_class&amp; is not trivial\&#34;);\n\nint main(){}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;type_traits&#34;, &#34;is_trivial&#34;]}">
7272
<nav class="navbar navbar-default" role="navigation">
7373
<div class="container-fluid">
7474
<div class="navbar-header">
@@ -188,8 +188,8 @@
188188

189189
<p class="text-right"><small>
190190
最終更新日時(UTC):
191-
<span itemprop="datePublished" content="2024-06-11T13:45:38">
192-
2024年06月11日 13時45分38秒
191+
<span itemprop="datePublished" content="2025-01-10T08:54:05">
192+
2025年01月10日 08時54分05秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -212,7 +212,7 @@
212212
<div class="row">
213213
<div class="col-sm-12 content-body">
214214

215-
<div class="identifier-type">class template</div><div class="header">&lt;type_traits&gt;</div><h1 itemprop="name"><span class="namespace" title="namespace std">std::</span><span class="token">is_trivial</span><span class="cpp cpp11" title="C++11で追加">(C++11)</span></h1>
215+
<div class="identifier-type">class template</div><div class="header">&lt;type_traits&gt;</div><h1 itemprop="name"><span class="namespace" title="namespace std">std::</span><span class="token">is_trivial</span><span class="cpp cpp11" title="C++11で追加">(C++11)</span><span class="cpp cpp26deprecated text-warning" title="C++26で非推奨">(C++26で非推奨)</span></h1>
216216
<div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="k">namespace</span> <span class="n">std</span> <span class="p">{</span>
217217
<span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc">T</span><span class="o">&gt;</span>
218218
<span class="k">struct</span> <span class="n">is_trivial</span><span class="p">;</span>
@@ -222,6 +222,13 @@
222222
<span class="p">}</span>
223223
</code></pre></div>
224224
</p>
225+
<p>この型は、C++26で非推奨となった。</p>
226+
<p>代わりの機能として、以下を使用すること:</p>
227+
<ul>
228+
<li><code><a href="is_trivially_default_constructible.html">std::is_trivially_default_constructible</a></code></li>
229+
<li><code><a href="is_trivially_copyable.html">std::is_trivially_copyable</a></code></li>
230+
<li><code><a href="is_trivially_copy_assignable.html">std::is_trivially_copy_assignable</a></code></li>
231+
</ul>
225232
<h2>概要</h2>
226233
<p><code>T</code>がトリビアル型か調べる。トリビアル型は、トリビアルコピー可能、かつトリビアルなデフォルトコンストラクタを持つ型、およびそのcv修飾を含む。</p>
227234
<h2>要件</h2>
@@ -230,6 +237,14 @@ <h2>効果</h2>
230237
<p><code>is_trivial</code>は、型<code>T</code>がトリビアル型であるならば<code><a href="true_type.html">true_type</a></code>から派生し、そうでなければ<code><a href="false_type.html">false_type</a></code>から派生する。</p>
231238
<h2>備考</h2>
232239
<p>スカラ型は、トリビアル型の要件を満たす。トリビアル型の配列は、トリビアル型の要件を満たす。</p>
240+
<h2>非推奨の詳細</h2>
241+
<p>この機能は、トリビアルにコピー可能かと、トリビアルに<a class="cpprefjp-defined-word" data-desc="デフォルト初期化。`T x;`構文での初期化。トリビアルにデフォルト構築可能な型の場合は初期化されず(オブジェクトのlifetimeは開始される)、そうではないクラス型はデフォルトコンストラクタで初期化する。配列型の場合は各要素が再帰的にデフォルト初期化される">デフォルト構築</a>可能かの2つをチェックする。しかし、これら2つのチェックは異なる場面で必要となるため、この機能が必要となる状況がほとんどなかった。</p>
242+
<p>そのため、以下の個別要件をチェックする型を使用することを推奨し、本機能は非推奨とした。</p>
243+
<ul>
244+
<li><code><a href="is_trivially_default_constructible.html">std::is_trivially_default_constructible</a></code></li>
245+
<li><code><a href="is_trivially_copyable.html">std::is_trivially_copyable</a></code></li>
246+
<li><code><a href="is_trivially_copy_assignable.html">std::is_trivially_copy_assignable</a></code></li>
247+
</ul>
233248
<h2></h2>
234249
<p><div class="yata" id="0aa8d668272aa6ad844224a2ec98c852630c221b"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../type_traits.html">&lt;type_traits&gt;</a></span><span class="cp"></span>
235250

@@ -281,6 +296,10 @@ <h2>参照</h2>
281296
</ul>
282297
</li>
283298
<li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0006r0.html" target="_blank">P0006R0 Adopt Type Traits Variable Templates from Library Fundamentals TS for C++17</a></li>
299+
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3247r2.html" target="_blank">P3247R2: Deprecate the notion of trivial types</a><ul>
300+
<li>C++26で非推奨化</li>
301+
</ul>
302+
</li>
284303
</ul></div>
285304

286305
</div>

0 commit comments

Comments
 (0)