Skip to content

Commit d28b351

Browse files
Preview PR 1607: 2ad61e10e6380b
1 parent 15cd6e5 commit d28b351

4 files changed

Lines changed: 65 additions & 5080 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-05-07 15:56:15 JST
2+
- ⌚ 更新時刻: 2026-05-08 11:05:50 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-
- **⫯** ソースの変更: [`0e6380b..2bc3273`](https://github.com/cpprefjp/site/compare/0e6380b40a6a6da7b4cb2e19b65a3905e5f32494..2bc3273095e602b1754096255b858c357788f47d)
5+
- **⫯** ソースの変更: [`0e6380b..2ad61e1`](https://github.com/cpprefjp/site/compare/0e6380b40a6a6da7b4cb2e19b65a3905e5f32494..2ad61e1de34873081f645a047999f8e47f57af5e)
66

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

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

Lines changed: 6 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;dc9b4eb7e6e54a4b55b0a3f6496edbe66d1a6949&#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 static constexpr auto annots = std::define_static_array(std::meta::annotations_of(^^S));\n // annots\u306fconsteval-only\u578b\u306e\u305f\u3081\u3001\u5b9f\u884c\u6642\u306b\u4f7f\u3046\u306b\u306f\u30b5\u30a4\u30ba\u306a\u3069\u3092\n // \u5b9a\u6570\u5f0f\u3068\u3057\u3066\u3042\u3089\u304b\u3058\u3081\u53d6\u308a\u51fa\u3057\u3066\u304a\u304f\u5fc5\u8981\u304c\u3042\u308b\n constexpr std::size_t count = annots.size();\n std::println(\&#34;\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u6570: {}\&#34;, count);\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;]}">
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;9faa772b3e4e1bce790b7161ee8fa51db8c1d53a&#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 static constexpr auto annots = std::define_static_array(std::meta::annotations_of(^^S));\n // annots\u306fconsteval-only\u578b\u306e\u305f\u3081\u3001\u5b9f\u884c\u6642\u306b\u4f7f\u3046\u306b\u306f\u30b5\u30a4\u30ba\u306a\u3069\u3092\n // \u5b9a\u6570\u5f0f\u3068\u3057\u3066\u3042\u3089\u304b\u3058\u3081\u53d6\u308a\u51fa\u3057\u3066\u304a\u304f\u5fc5\u8981\u304c\u3042\u308b\n constexpr std::size_t count = annots.size();\n std::println(\&#34;\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u6570: {}\&#34;, count);\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) == ^^const 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-05-07T03:33:06">
192-
2026年05月07日 03時33分06秒
191+
<span itemprop="datePublished" content="2026-05-08T02:02:17">
192+
2026年05月08日 02時02分17秒
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="dc9b4eb7e6e54a4b55b0a3f6496edbe66d1a6949"><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="9faa772b3e4e1bce790b7161ee8fa51db8c1d53a"><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>
@@ -244,7 +244,7 @@ <h2>例</h2>
244244
<span class="w"> </span><span class="c1">// 型ごとに値を取り出して出力</span>
245245
<span class="w"> </span><span class="c1">// アノテーションは値のリフレクションではないため、</span>
246246
<span class="w"> </span><span class="c1">// constant_of()で値を取り出してからスプライスする</span>
247-
<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>
247+
<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="k">const</span><span class="w"> </span><span class="n">Label</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
248248
<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>
249249
<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>
250250
<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>
@@ -255,7 +255,7 @@ <h2>例</h2>
255255
</div></p>
256256
<h3>出力</h3>
257257
<p><pre><code>アノテーション数: 2
258-
型: Label
258+
型: const Label
259259
値: my struct
260260
型: int
261261
値: 42

0 commit comments

Comments
 (0)