6868
6969 </ head >
7070 < body >
71- < header data-kunai-mdinfo ="{"meta": {"header": ["meta"], "namespace": ["std::meta"], "id-type": ["function"], "cpp": ["cpp26"]}, "sources": [{"id": "dc9b4eb7e6e54a4b55b0a3f6496edbe66d1a6949", "source": "#include <meta>\n#include <print>\n\nstruct Label { const char* text; };\n\nstruct [[=Label{std::define_static_string(\"my struct\")}, =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(\"\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u6570: {}\", 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(\" \u578b: {}\", 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(\" \u5024: {}\", [:std::meta::constant_of(a):].text);\n } else if constexpr (std::meta::type_of(a) == ^^int) {\n std::println(\" \u5024: {}\", [:std::meta::constant_of(a):]);\n }\n }\n}\n"}], "page_id": ["reference", "meta", "annotations_of"]} ">
71+ < header data-kunai-mdinfo ="{"meta": {"header": ["meta"], "namespace": ["std::meta"], "id-type": ["function"], "cpp": ["cpp26"]}, "sources": [{"id": "9faa772b3e4e1bce790b7161ee8fa51db8c1d53a", "source": "#include <meta>\n#include <print>\n\nstruct Label { const char* text; };\n\nstruct [[=Label{std::define_static_string(\"my struct\")}, =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(\"\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u6570: {}\", 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(\" \u578b: {}\", 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(\" \u5024: {}\", [:std::meta::constant_of(a):].text);\n } else if constexpr (std::meta::type_of(a) == ^^int) {\n std::println(\" \u5024: {}\", [:std::meta::constant_of(a):]);\n }\n }\n}\n"}], "page_id": ["reference", "meta", "annotations_of"]} ">
7272 < nav class ="navbar navbar-default " role ="navigation ">
7373 < div class ="container-fluid ">
7474 < div class ="navbar-header ">
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 "> <meta></ a > </ span >
226+ < p > < div class ="yata " id ="9faa772b3e4e1bce790b7161ee8fa51db8c1d53a "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include < a href ="../meta.html "> <meta></ a > </ span >
227227< span class ="cp "> #include < a href ="../print.html "> <print></ 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