Skip to content

Commit 4febf50

Browse files
Preview PR 1607: 4201f91d4a7aac
1 parent dd3d238 commit 4febf50

6 files changed

Lines changed: 135 additions & 48 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 12:23:30 JST
2+
- ⌚ 更新時刻: 2026-04-24 12:29:27 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..8b40265`](https://github.com/cpprefjp/site/compare/c8f0f3f63e70b87bf9b9d66a9344525331eafa1f..8b40265a2b69c4733cb4796486fb7a165cf42378)
5+
- **⫯** ソースの変更: [`c8f0f3f..4201f91`](https://github.com/cpprefjp/site/compare/c8f0f3f63e70b87bf9b9d66a9344525331eafa1f..4201f91c0e96e7f35919301a767820f8610fefa8)
66

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

gen/pull/1607/lang/cpp26/reflection.html

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@
188188

189189
<p class="text-right"><small>
190190
最終更新日時(UTC):
191-
<span itemprop="datePublished" content="2026-04-24T03:16:35">
192-
2026年04月24日 03時16分35秒
191+
<span itemprop="datePublished" content="2026-04-24T03:25:00">
192+
2026年04月24日 03時25分00秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -482,7 +482,9 @@ <h3>構文</h3>
482482
<span class="w"> </span><span class="n"><a href="../../reference/meta/access_context.html">std::meta::access_context</a></span><span class="o">::</span><span class="n"><a href="../../reference/meta/access_context/unchecked.html">unchecked</a></span><span class="p">())))</span><span class="w"> </span><span class="p">{</span>
483483
<span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">annots</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n"><a href="../../reference/meta/annotations_of_with_type.html">std::meta::annotations_of_with_type</a></span><span class="p">(</span><span class="n">m</span><span class="p">,</span><span class="w"> </span><span class="o">^^</span><span class="n">Name</span><span class="p">);</span>
484484
<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">annots</span><span class="p">.</span><span class="n">size</span><span class="p">()</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
485-
<span class="w"> </span><span class="n"><a href="../../reference/print/println.html">std::println</a></span><span class="p">(</span><span class="s">"{}: {}"</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="o">:</span><span class="n">annots</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">:</span><span class="p">].</span><span class="n">value</span><span class="p">,</span>
485+
<span class="w"> </span><span class="c1">// アノテーションは値のリフレクションではないため、</span>
486+
<span class="w"> </span><span class="c1">// constant_of()で値を取り出してからスプライスする</span>
487+
<span class="w"> </span><span class="n"><a href="../../reference/print/println.html">std::println</a></span><span class="p">(</span><span class="s">"{}: {}"</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="o">:</span><span class="n"><a href="../../reference/meta/constant_of.html">std::meta::constant_of</a></span><span class="p">(</span><span class="n">annots</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">:</span><span class="p">].</span><span class="n">value</span><span class="p">,</span>
486488
<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">meta</span><span class="o">::</span><span class="n">identifier_of</span><span class="p">(</span><span class="n">m</span><span class="p">));</span>
487489
<span class="w"> </span><span class="p">}</span>
488490
<span class="p">}</span>

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

Lines changed: 8 additions & 6 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;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;14ff6e2f4f7ce7a2c0bd37399a619e05dc321ba0&#34;, &#34;source&#34;: &#34;#include &lt;meta&gt;\n#include &lt;print&gt;\n\nstruct Label { const char* text; };\n\nstruct [[=Label{std::define_static_string(\&#34;my struct\&#34;)}, =42]] S {};\n\nint main() {\n constexpr auto annots = std::define_static_array(std::meta::annotations_of(^^S));\n std::println(\&#34;\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u6570: {}\&#34;, annots.size());\n\n template for (constexpr auto a : annots) {\n // \u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u306e\u578b\u540d\u3092\u51fa\u529b\n std::println(\&#34; \u578b: {}\&#34;, std::meta::display_string_of(std::meta::type_of(a)));\n\n // \u578b\u3054\u3068\u306b\u5024\u3092\u53d6\u308a\u51fa\u3057\u3066\u51fa\u529b\n if constexpr (std::meta::type_of(a) == ^^Label) {\n std::println(\&#34; \u5024: {}\&#34;, [:a:].text);\n } else if constexpr (std::meta::type_of(a) == ^^int) {\n std::println(\&#34; \u5024: {}\&#34;, [:a:]);\n }\n }\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;meta&#34;, &#34;annotations_of&#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;5ff53d27942544ca4f2e511b67a2b449a790f1d4&#34;, &#34;source&#34;: &#34;#include &lt;meta&gt;\n#include &lt;print&gt;\n\nstruct Label { const char* text; };\n\nstruct [[=Label{std::define_static_string(\&#34;my struct\&#34;)}, =42]] S {};\n\nint main() {\n constexpr auto annots = std::define_static_array(std::meta::annotations_of(^^S));\n std::println(\&#34;\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u6570: {}\&#34;, annots.size());\n\n template for (constexpr auto a : annots) {\n // \u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u306e\u578b\u540d\u3092\u51fa\u529b\n std::println(\&#34; \u578b: {}\&#34;, std::meta::display_string_of(std::meta::type_of(a)));\n\n // \u578b\u3054\u3068\u306b\u5024\u3092\u53d6\u308a\u51fa\u3057\u3066\u51fa\u529b\n // \u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u306f\u5024\u306e\u30ea\u30d5\u30ec\u30af\u30b7\u30e7\u30f3\u3067\u306f\u306a\u3044\u305f\u3081\u3001\n // constant_of()\u3067\u5024\u3092\u53d6\u308a\u51fa\u3057\u3066\u304b\u3089\u30b9\u30d7\u30e9\u30a4\u30b9\u3059\u308b\n if constexpr (std::meta::type_of(a) == ^^Label) {\n std::println(\&#34; \u5024: {}\&#34;, [:std::meta::constant_of(a):].text);\n } else if constexpr (std::meta::type_of(a) == ^^int) {\n std::println(\&#34; \u5024: {}\&#34;, [:std::meta::constant_of(a):]);\n }\n }\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;meta&#34;, &#34;annotations_of&#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-24T03:25:00">
192+
2026年04月24日 03時25分00秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -223,7 +223,7 @@ <h2>概要</h2>
223223
<h2><a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価結果となるオブジェクト・値">戻り値</a></h2>
224224
<p><code>item</code>に付加されたすべてのアノテーションのリフレクションを格納した<code><a href="../vector/vector.html">std::vector</a></code>オブジェクトを返す。</p>
225225
<h2></h2>
226-
<p><div class="yata" id="14ff6e2f4f7ce7a2c0bd37399a619e05dc321ba0"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../meta.html">&lt;meta&gt;</a></span>
226+
<p><div class="yata" id="5ff53d27942544ca4f2e511b67a2b449a790f1d4"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../meta.html">&lt;meta&gt;</a></span>
227227
<span class="cp">#include <a href="../print.html">&lt;print&gt;</a></span>
228228

229229
<span class="k">struct</span><span class="w"> </span><span class="nc">Label</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">text</span><span class="p">;</span><span class="w"> </span><span class="p">};</span>
@@ -239,10 +239,12 @@ <h2>例</h2>
239239
<span class="w"> </span><span class="n"><a href="../print/println.html">std::println</a></span><span class="p">(</span><span class="s">" 型: {}"</span><span class="p">,</span><span class="w"> </span><span class="n"><a href="display_string_of.html">std::meta::display_string_of</a></span><span class="p">(</span><span class="n"><a href="type_of.html">std::meta::type_of</a></span><span class="p">(</span><span class="n">a</span><span class="p">)));</span>
240240

241241
<span class="w"> </span><span class="c1">// 型ごとに値を取り出して出力</span>
242+
<span class="w"> </span><span class="c1">// アノテーションは値のリフレクションではないため、</span>
243+
<span class="w"> </span><span class="c1">// constant_of()で値を取り出してからスプライスする</span>
242244
<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="type_of.html">std::meta::type_of</a></span><span class="p">(</span><span class="n">a</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="o">^^</span><span class="n">Label</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
243-
<span class="w"> </span><span class="n"><a href="../print/println.html">std::println</a></span><span class="p">(</span><span class="s">" 値: {}"</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="o">:</span><span class="n">a</span><span class="o">:</span><span class="p">].</span><span class="n">text</span><span class="p">);</span>
245+
<span class="w"> </span><span class="n"><a href="../print/println.html">std::println</a></span><span class="p">(</span><span class="s">" 値: {}"</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="o">:</span><span class="n"><a href="constant_of.html">std::meta::constant_of</a></span><span class="p">(</span><span class="n">a</span><span class="p">)</span><span class="o">:</span><span class="p">].</span><span class="n">text</span><span class="p">);</span>
244246
<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><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="type_of.html">std::meta::type_of</a></span><span class="p">(</span><span class="n">a</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="o">^^</span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
245-
<span class="w"> </span><span class="n"><a href="../print/println.html">std::println</a></span><span class="p">(</span><span class="s">" 値: {}"</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="o">:</span><span class="n">a</span><span class="o">:</span><span class="p">]);</span>
247+
<span class="w"> </span><span class="n"><a href="../print/println.html">std::println</a></span><span class="p">(</span><span class="s">" 値: {}"</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="o">:</span><span class="n"><a href="constant_of.html">std::meta::constant_of</a></span><span class="p">(</span><span class="n">a</span><span class="p">)</span><span class="o">:</span><span class="p">]);</span>
246248
<span class="w"> </span><span class="p">}</span>
247249
<span class="w"> </span><span class="p">}</span>
248250
<span class="p">}</span>

gen/pull/1607/reference/meta/annotations_of_with_type.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;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;60e56cb046f99c304d84087df8994e6bf2cd9f0e&#34;, &#34;source&#34;: &#34;#include &lt;meta&gt;\n#include &lt;print&gt;\n\nstruct Name { const char* value; };\n\nstruct [[=Name{std::define_static_string(\&#34;\u70b9\&#34;)}, =42]] Point {\n [[=Name{std::define_static_string(\&#34;x\u5ea7\u6a19\&#34;)}]] int x;\n [[=Name{std::define_static_string(\&#34;y\u5ea7\u6a19\&#34;)}]] int y;\n};\n\nint main() {\n static_assert(std::meta::annotations_of_with_type(^^Point, ^^Name).size() == 1);\n template for (constexpr auto a :\n std::define_static_array(\n std::meta::annotations_of_with_type(^^Point, ^^Name))) {\n std::println(\&#34;{}\&#34;, [:a:].value);\n }\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;meta&#34;, &#34;annotations_of_with_type&#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;e064b87a9b03b984c75d10b206e3c55ba6669ef1&#34;, &#34;source&#34;: &#34;#include &lt;meta&gt;\n#include &lt;print&gt;\n\nstruct Name { const char* value; };\n\nstruct [[=Name{std::define_static_string(\&#34;\u70b9\&#34;)}, =42]] Point {\n [[=Name{std::define_static_string(\&#34;x\u5ea7\u6a19\&#34;)}]] int x;\n [[=Name{std::define_static_string(\&#34;y\u5ea7\u6a19\&#34;)}]] int y;\n};\n\nint main() {\n static_assert(std::meta::annotations_of_with_type(^^Point, ^^Name).size() == 1);\n template for (constexpr auto a :\n std::define_static_array(\n std::meta::annotations_of_with_type(^^Point, ^^Name))) {\n // constant_of()\u3067\u5024\u306e\u30ea\u30d5\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u53d6\u308a\u51fa\u3057\u3066\u304b\u3089\u30b9\u30d7\u30e9\u30a4\u30b9\u3059\u308b\n std::println(\&#34;{}\&#34;, [:std::meta::constant_of(a):].value);\n }\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;meta&#34;, &#34;annotations_of_with_type&#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-24T03:25:00">
192+
2026年04月24日 03時25分00秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -223,7 +223,7 @@ <h2>概要</h2>
223223
<h2><a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価結果となるオブジェクト・値">戻り値</a></h2>
224224
<p><code>item</code>に付加されたアノテーションのうち、型が<code>type</code>に一致するもののリフレクションを格納した<code><a href="../vector/vector.html">std::vector</a></code>オブジェクトを返す。</p>
225225
<h2></h2>
226-
<p><div class="yata" id="60e56cb046f99c304d84087df8994e6bf2cd9f0e"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../meta.html">&lt;meta&gt;</a></span>
226+
<p><div class="yata" id="e064b87a9b03b984c75d10b206e3c55ba6669ef1"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../meta.html">&lt;meta&gt;</a></span>
227227
<span class="cp">#include <a href="../print.html">&lt;print&gt;</a></span>
228228

229229
<span class="k">struct</span><span class="w"> </span><span class="nc">Name</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">value</span><span class="p">;</span><span class="w"> </span><span class="p">};</span>
@@ -238,7 +238,8 @@ <h2>例</h2>
238238
<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">a</span><span class="w"> </span><span class="o">:</span>
239239
<span class="w"> </span><span class="n"><a href="define_static_array.html">std::define_static_array</a></span><span class="p">(</span>
240240
<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">meta</span><span class="o">::</span><span class="n">annotations_of_with_type</span><span class="p">(</span><span class="o">^^</span><span class="n">Point</span><span class="p">,</span><span class="w"> </span><span class="o">^^</span><span class="n">Name</span><span class="p">)))</span><span class="w"> </span><span class="p">{</span>
241-
<span class="w"> </span><span class="n"><a href="../print/println.html">std::println</a></span><span class="p">(</span><span class="s">"{}"</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="o">:</span><span class="n">a</span><span class="o">:</span><span class="p">].</span><span class="n">value</span><span class="p">);</span>
241+
<span class="w"> </span><span class="c1">// constant_of()で値のリフレクションを取り出してからスプライスする</span>
242+
<span class="w"> </span><span class="n"><a href="../print/println.html">std::println</a></span><span class="p">(</span><span class="s">"{}"</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="o">:</span><span class="n"><a href="constant_of.html">std::meta::constant_of</a></span><span class="p">(</span><span class="n">a</span><span class="p">)</span><span class="o">:</span><span class="p">].</span><span class="n">value</span><span class="p">);</span>
242243
<span class="w"> </span><span class="p">}</span>
243244
<span class="p">}</span>
244245
</code></pre></div>

0 commit comments

Comments
 (0)