Skip to content

Commit 0262c7f

Browse files
Preview PR 1607: b094b249bde559
1 parent a482340 commit 0262c7f

5 files changed

Lines changed: 258 additions & 71 deletions

File tree

gen/pull/1607/PREVIEW.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# PR [\#1607](https://github.com/cpprefjp/site/pull/1607) プレビュー
2-
- ⌚ 更新時刻: 2026-04-24 14:13:50 JST
2+
- ⌚ 更新時刻: 2026-04-30 15:13:40 JST
33
- 🔍 [プレビュー (HTML)](https://cpprefjp.github.io/site/gen/pull/1607)
44
- 📈 [プレビュー生成記録](https://github.com/cpprefjp/site/actions?query=event%3Apull_request_target+branch%3Acpp26_reflection)
5-
- **⫯** ソースの変更: [`c8f0f3f..3058e20`](https://github.com/cpprefjp/site/compare/c8f0f3f63e70b87bf9b9d66a9344525331eafa1f..3058e2035d4f07a18b3801ce24124a115f35d4ff)
5+
- **⫯** ソースの変更: [`c8f0f3f..b094b24`](https://github.com/cpprefjp/site/compare/c8f0f3f63e70b87bf9b9d66a9344525331eafa1f..b094b241f2bc9ef429530187ebc061aa12a5bf0b)
66

77
## 変更記事一覧 (259件)
88

gen/pull/1607/reference/meta/is_defaulted.html

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828
<meta property="og:url" content="https://cpprefjp.github.io/reference/meta/is_defaulted.html" />
2929
<meta property="og:site_name" content="cpprefjp - C++日本語リファレンス" />
3030
<meta property="og:type" content="article" />
31-
<meta property="og:description" content="`= default`されているかを判定する" />
31+
<meta property="og:description" content="デフォルト関数(規格上の[defaulted function](https://eel.is/c++draft/dcl.fct.def.default#def:defaulted))であるかを判定する" />
3232
<meta name="twitter:card" content="summary" />
3333
<meta name="twitter:title" content="is_defaulted - cpprefjp C++日本語リファレンス" />
3434
<meta name="twitter:url" content="https://cpprefjp.github.io/reference/meta/is_defaulted.html" />
35-
<meta name="twitter:description" content="`= default`されているかを判定する" />
35+
<meta name="twitter:description" content="デフォルト関数(規格上の[defaulted function](https://eel.is/c++draft/dcl.fct.def.default#def:defaulted))であるかを判定する" />
3636

3737

3838
<link rel="alternate" type="application/atom+xml" title="Atom" href="https://cpprefjp.github.io/rss.xml" />
@@ -68,7 +68,7 @@
6868

6969
</head>
7070
<body>
71-
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;meta&#34;], &#34;namespace&#34;: [&#34;std::meta&#34;], &#34;id-type&#34;: [&#34;function&#34;], &#34;cpp&#34;: [&#34;cpp26&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;bda4d1d7aed7670dbf334eb21ba4a54f286b1cd0&#34;, &#34;source&#34;: &#34;#include &lt;meta&gt;\n\nstruct S {\n S() = default;\n S(int) {}\n};\n\nint main() {\n template for (constexpr auto m :\n std::define_static_array(std::meta::members_of(^^S, std::meta::access_context::unchecked()))) {\n if constexpr (std::meta::is_default_constructor(m)) {\n static_assert(std::meta::is_defaulted(m));\n }\n }\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;meta&#34;, &#34;is_defaulted&#34;]}">
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;meta&#34;], &#34;namespace&#34;: [&#34;std::meta&#34;], &#34;id-type&#34;: [&#34;function&#34;], &#34;cpp&#34;: [&#34;cpp26&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;f49bfd9f943d2c84297f0ccbe7189a550d18ba2a&#34;, &#34;source&#34;: &#34;#include &lt;meta&gt;\n\n// \u3059\u3079\u3066\u306e\u7279\u6b8a\u30e1\u30f3\u30d0\u95a2\u6570\u304c\u6697\u9ed9\u7684\u306b\u5ba3\u8a00\u3055\u308c\u308b\nstruct Implicit {};\n\n// \u660e\u793a\u7684\u306b= default\u3055\u308c\u308b\nstruct Explicit {\n Explicit() = default;\n Explicit(int) {}\n};\n\nint main() {\n template for (constexpr auto m :\n std::define_static_array(std::meta::members_of(^^Implicit,\n std::meta::access_context::unchecked()))) {\n // Implicit\u30af\u30e9\u30b9\u306e\u6697\u9ed9\u5ba3\u8a00\u3055\u308c\u305f\u30c7\u30d5\u30a9\u30eb\u30c8\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u7b49\u3082\u30c7\u30d5\u30a9\u30eb\u30c8\u95a2\u6570\u3068\u306a\u308b\n if constexpr (std::meta::is_default_constructor(m)) {\n static_assert(std::meta::is_defaulted(m));\n }\n }\n\n template for (constexpr auto m :\n std::define_static_array(std::meta::members_of(^^Explicit,\n std::meta::access_context::unchecked()))) {\n if constexpr (std::meta::is_default_constructor(m)) {\n // \u660e\u793a\u7684\u306a= default\u6307\u5b9a\u3055\u308c\u305f\u95a2\u6570\u3082\u30c7\u30d5\u30a9\u30eb\u30c8\u95a2\u6570\n static_assert(std::meta::is_defaulted(m));\n }\n if constexpr (std::meta::is_constructor(m)\n &amp;&amp; !std::meta::is_default_constructor(m)\n &amp;&amp; !std::meta::is_copy_constructor(m)\n &amp;&amp; !std::meta::is_move_constructor(m)) {\n // \u30e6\u30fc\u30b6\u30fc\u5b9a\u7fa9\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u95a2\u6570\u3067\u306f\u306a\u3044\n static_assert(!std::meta::is_defaulted(m));\n }\n }\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;meta&#34;, &#34;is_defaulted&#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="2026-04-20T05:29:50">
192-
2026年04月20日 05時29分50秒
191+
<span itemprop="datePublished" content="2026-04-30T06:09:00">
192+
2026年04月30日 06時09分00秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -219,22 +219,50 @@
219219
</code></pre></div>
220220
</p>
221221
<h2>概要</h2>
222-
<p><code>= default</code>されているかを判定する。</p>
222+
<p>デフォルト関数(規格上の<a href="https://eel.is/c++draft/dcl.fct.def.default#def:defaulted" target="_blank">defaulted function</a>)であるかを判定する。</p>
223+
<p>デフォルト関数には、以下が含まれる:</p>
224+
<ul>
225+
<li><code>= default</code>を明示的に付加して定義された関数</li>
226+
<li>暗黙的に宣言される特殊メンバ関数(デフォルトコンストラクタ、コピー/ムーブコンストラクタ、コピー/ムーブ代入演算子、デストラクタ)</li>
227+
<li>暗黙的に宣言される比較演算子</li>
228+
</ul>
223229
<h2><a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価結果となるオブジェクト・値">戻り値</a></h2>
224-
<p><code>r</code><code>= default</code>された関数を表す場合に<code>true</code>を返す。</p>
230+
<p><code>r</code>がデフォルト関数を表す場合に<code>true</code>を返す。</p>
225231
<h2></h2>
226-
<p><div class="yata" id="bda4d1d7aed7670dbf334eb21ba4a54f286b1cd0"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../meta.html">&lt;meta&gt;</a></span>
232+
<p><div class="yata" id="f49bfd9f943d2c84297f0ccbe7189a550d18ba2a"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../meta.html">&lt;meta&gt;</a></span>
233+
234+
<span class="c1">// すべての特殊メンバ関数が暗黙的に宣言される</span>
235+
<span class="k">struct</span><span class="w"> </span><span class="nc">Implicit</span><span class="w"> </span><span class="p">{};</span>
227236

228-
<span class="k">struct</span><span class="w"> </span><span class="nc">S</span><span class="w"> </span><span class="p">{</span>
229-
<span class="w"> </span><span class="n">S</span><span class="p">()</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">default</span><span class="p">;</span>
230-
<span class="w"> </span><span class="n">S</span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="p">{}</span>
237+
<span class="c1">// 明示的に= defaultされる</span>
238+
<span class="k">struct</span><span class="w"> </span><span class="nc">Explicit</span><span class="w"> </span><span class="p">{</span>
239+
<span class="w"> </span><span class="n">Explicit</span><span class="p">()</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">default</span><span class="p">;</span>
240+
<span class="w"> </span><span class="n">Explicit</span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="p">{}</span>
231241
<span class="p">};</span>
232242

233243
<span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
234244
<span class="w"> </span><span class="k">template</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">m</span><span class="w"> </span><span class="o">:</span>
235-
<span class="w"> </span><span class="n"><a href="define_static_array.html">std::define_static_array</a></span><span class="p">(</span><span class="n"><a href="members_of.html">std::meta::members_of</a></span><span class="p">(</span><span class="o">^^</span><span class="n">S</span><span class="p">,</span><span class="w"> </span><span class="n"><a href="access_context.html">std::meta::access_context</a></span><span class="o">::</span><span class="n"><a href="access_context/unchecked.html">unchecked</a></span><span class="p">())))</span><span class="w"> </span><span class="p">{</span>
245+
<span class="w"> </span><span class="n"><a href="define_static_array.html">std::define_static_array</a></span><span class="p">(</span><span class="n"><a href="members_of.html">std::meta::members_of</a></span><span class="p">(</span><span class="o">^^</span><span class="n">Implicit</span><span class="p">,</span>
246+
<span class="w"> </span><span class="n"><a href="access_context.html">std::meta::access_context</a></span><span class="o">::</span><span class="n"><a href="access_context/unchecked.html">unchecked</a></span><span class="p">())))</span><span class="w"> </span><span class="p">{</span>
247+
<span class="w"> </span><span class="c1">// Implicitクラスの暗黙宣言されたデフォルトコンストラクタ等もデフォルト関数となる</span>
236248
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="p">(</span><span class="n"><a href="is_default_constructor.html">std::meta::is_default_constructor</a></span><span class="p">(</span><span class="n">m</span><span class="p">))</span><span class="w"> </span><span class="p">{</span>
237-
<span class="w"> </span><span class="k">static_assert</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">meta</span><span class="o">::</span><span class="n">is_defaulted</span><span class="p">(</span><span class="n">m</span><span class="p">));</span>
249+
<span class="w"> </span><span class="k">static_assert</span><span class="p">(</span><span class="n"><span style="color:#ff0000">std::meta::is_defaulted</span></span><span class="p">(</span><span class="n">m</span><span class="p">));</span>
250+
<span class="w"> </span><span class="p">}</span>
251+
<span class="w"> </span><span class="p">}</span>
252+
253+
<span class="w"> </span><span class="k">template</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">m</span><span class="w"> </span><span class="o">:</span>
254+
<span class="w"> </span><span class="n"><a href="define_static_array.html">std::define_static_array</a></span><span class="p">(</span><span class="n"><a href="members_of.html">std::meta::members_of</a></span><span class="p">(</span><span class="o">^^</span><span class="n">Explicit</span><span class="p">,</span>
255+
<span class="w"> </span><span class="n"><a href="access_context.html">std::meta::access_context</a></span><span class="o">::</span><span class="n"><a href="access_context/unchecked.html">unchecked</a></span><span class="p">())))</span><span class="w"> </span><span class="p">{</span>
256+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="p">(</span><span class="n"><a href="is_default_constructor.html">std::meta::is_default_constructor</a></span><span class="p">(</span><span class="n">m</span><span class="p">))</span><span class="w"> </span><span class="p">{</span>
257+
<span class="w"> </span><span class="c1">// 明示的な= default指定された関数もデフォルト関数</span>
258+
<span class="w"> </span><span class="k">static_assert</span><span class="p">(</span><span class="n"><span style="color:#ff0000">std::meta::is_defaulted</span></span><span class="p">(</span><span class="n">m</span><span class="p">));</span>
259+
<span class="w"> </span><span class="p">}</span>
260+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="p">(</span><span class="n"><a href="is_constructor.html">std::meta::is_constructor</a></span><span class="p">(</span><span class="n">m</span><span class="p">)</span>
261+
<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="o">!</span><span class="n"><a href="is_default_constructor.html">std::meta::is_default_constructor</a></span><span class="p">(</span><span class="n">m</span><span class="p">)</span>
262+
<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="o">!</span><span class="n"><a href="is_copy_constructor.html">std::meta::is_copy_constructor</a></span><span class="p">(</span><span class="n">m</span><span class="p">)</span>
263+
<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="o">!</span><span class="n"><a href="is_move_constructor.html">std::meta::is_move_constructor</a></span><span class="p">(</span><span class="n">m</span><span class="p">))</span><span class="w"> </span><span class="p">{</span>
264+
<span class="w"> </span><span class="c1">// ユーザー定義コンストラクタはデフォルト関数ではない</span>
265+
<span class="w"> </span><span class="k">static_assert</span><span class="p">(</span><span class="o">!</span><span class="n"><span style="color:#ff0000">std::meta::is_defaulted</span></span><span class="p">(</span><span class="n">m</span><span class="p">));</span>
238266
<span class="w"> </span><span class="p">}</span>
239267
<span class="w"> </span><span class="p">}</span>
240268
<span class="p">}</span>
@@ -250,7 +278,7 @@ <h3>言語</h3>
250278
<h3>処理系</h3>
251279
<ul>
252280
<li><a href="../../implementation.html#clang">Clang</a>: ??</li>
253-
<li><a href="../../implementation.html#gcc">GCC</a>: ??</li>
281+
<li><a href="../../implementation.html#gcc">GCC</a>: 16 <span aria-label="検証済" role="img" title="検証済"></span></li>
254282
<li><a href="../../implementation.html#visual_cpp">Visual C++</a>: ??</li>
255283
</ul>
256284
<h2>参照</h2>

0 commit comments

Comments
 (0)