6868
6969 </ head >
7070 < body >
71- < header data-kunai-mdinfo ="{"meta": {"header": ["meta"], "namespace": ["std::meta"], "id-type": ["function"], "cpp": ["cpp26"]}, "sources": [{"id": "14ff6e2f4f7ce7a2c0bd37399a619e05dc321ba0", "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 constexpr auto annots = std::define_static_array(std::meta::annotations_of(^^S));\n std::println(\"\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u6570: {}\", 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(\" \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 if constexpr (std::meta::type_of(a) == ^^Label) {\n std::println(\" \u5024: {}\", [:a:].text);\n } else if constexpr (std::meta::type_of(a) == ^^int) {\n std::println(\" \u5024: {}\", [: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": "5ff53d27942544ca4f2e511b67a2b449a790f1d4", "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 constexpr auto annots = std::define_static_array(std::meta::annotations_of(^^S));\n std::println(\"\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u6570: {}\", 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(\" \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"]} ">
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-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 "> <meta></ a > </ span >
226+ < p > < div class ="yata " id ="5ff53d27942544ca4f2e511b67a2b449a790f1d4 "> < 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 >
@@ -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 >
0 commit comments