6868
6969 </ head >
7070 < body >
71- < header data-kunai-mdinfo ="{"meta": {"header": ["meta"], "namespace": ["std::meta"], "class": ["access_context"], "id-type": ["function"], "cpp": ["cpp26"]}, "sources": [{"id": "d04539f5ff1e16bbfb5fa6dd43232e6d5ee3ad00", "source": "#include <meta>\n#include <print>\n\nclass C {\n int secret;\npublic:\n int visible;\n\n static void inspect() {\n constexpr auto ctx = std::meta::access_context::current();\n // C\u5185\u90e8\u304b\u3089current()\u3092\u547c\u3093\u3060\u306e\u3067\u3001\u30b9\u30b3\u30fc\u30d7\u306fC\n std::println(\"scope: {}\", std::meta::display_string_of(ctx.scope()));\n }\n};\n\nint main() {\n C::inspect();\n}\n"}], "page_id": ["reference", "meta", "access_context", "scope"]} ">
71+ < header data-kunai-mdinfo ="{"meta": {"header": ["meta"], "namespace": ["std::meta"], "class": ["access_context"], "id-type": ["function"], "cpp": ["cpp26"]}, "sources": [{"id": "39bf4833495399ac32f77933a69636af42b351fa", "source": "#include <meta>\n#include <print>\n\nclass C {\npublic:\n static void inspect() {\n // current()\u306finspect()\u95a2\u6570\u5185\u3067\u547c\u3070\u308c\u305f\u306e\u3067\u3001\u30b9\u30b3\u30fc\u30d7\u306finspect()\u95a2\u6570\n constexpr auto ctx = std::meta::access_context::current();\n std::println(\"inspect()\u306e\u30b9\u30b3\u30fc\u30d7: {}\",\n std::meta::display_string_of(ctx.scope()));\n }\n};\n\nvoid free_function() {\n // current()\u306ffree_function()\u5185\u3067\u547c\u3070\u308c\u305f\u306e\u3067\u3001\u30b9\u30b3\u30fc\u30d7\u306ffree_function()\n constexpr auto ctx = std::meta::access_context::current();\n std::println(\"free_function()\u306e\u30b9\u30b3\u30fc\u30d7: {}\",\n std::meta::display_string_of(ctx.scope()));\n}\n\nint main() {\n // current()\u306fmain()\u5185\u3067\u547c\u3070\u308c\u305f\u306e\u3067\u3001\u30b9\u30b3\u30fc\u30d7\u306fmain()\n constexpr auto ctx = std::meta::access_context::current();\n std::println(\"main()\u306e\u30b9\u30b3\u30fc\u30d7: {}\",\n std::meta::display_string_of(ctx.scope()));\n\n C::inspect();\n free_function();\n}\n"}], "page_id": ["reference", "meta", "access_context", "scope"]} ">
7272 < nav class ="navbar navbar-default " role ="navigation ">
7373 < div class ="container-fluid ">
7474 < div class ="navbar-header ">
200200
201201 < p class ="text-right "> < small >
202202 最終更新日時(UTC):
203- < span itemprop ="datePublished " content ="2026-04-11T01:56:06 ">
204- 2026年04月11日 01時56分06秒
203+ < span itemprop ="datePublished " content ="2026-04-30T06:18:33 ">
204+ 2026年04月30日 06時18分33秒
205205 </ span >
206206 < br />
207207 < span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
@@ -232,29 +232,43 @@ <h2>概要</h2>
232232< p > アクセスコンテキストのスコープのリフレクションを返す。</ p >
233233< h2 > < a class ="cpprefjp-defined-word " data-desc ="関数呼び出し式の評価結果となるオブジェクト・値 "> 戻り値</ a > </ h2 >
234234< p > このアクセスコンテキストが関連付けられているスコープのリフレクションを返す。</ p >
235+ < p > < code > < a href ="current.html "> access_context::current()</ a > </ code > で取得したコンテキストの場合、< code > current()</ code > を呼び出した時点で囲んでいる関数や名前空間などのスコープが返される。</ p >
235236< h2 > 例</ h2 >
236- < p > < div class ="yata " id ="d04539f5ff1e16bbfb5fa6dd43232e6d5ee3ad00 "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include < a href ="../../meta.html "> <meta></ a > </ span >
237+ < p > < div class ="yata " id ="39bf4833495399ac32f77933a69636af42b351fa "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include < a href ="../../meta.html "> <meta></ a > </ span >
237238< span class ="cp "> #include < a href ="../../print.html "> <print></ a > </ span >
238239
239240< span class ="k "> class</ span > < span class ="w "> </ span > < span class ="nc "> C</ span > < span class ="w "> </ span > < span class ="p "> {</ span >
240- < span class ="w "> </ span > < span class ="kt "> int</ span > < span class ="w "> </ span > < span class ="n "> secret</ span > < span class ="p "> ;</ span >
241241< span class ="k "> public</ span > < span class ="o "> :</ span >
242- < span class ="w "> </ span > < span class ="kt "> int</ span > < span class ="w "> </ span > < span class ="n "> visible</ span > < span class ="p "> ;</ span >
243-
244- < span class ="w "> </ span > < span class ="k "> static</ span > < span class ="w "> </ span > < span class ="kt "> void</ span > < span class ="w "> </ span > < span class ="nf "> inspect</ span > < span class ="p "> ()</ span > < span class ="w "> </ span > < span class ="p "> {</ span >
242+ < span class ="w "> </ span > < span class ="k "> static</ span > < span class ="w "> </ span > < span class ="kt "> void</ span > < span class ="w "> </ span > < span class ="n "> inspect</ span > < span class ="p "> ()</ span > < span class ="w "> </ span > < span class ="p "> {</ span >
243+ < span class ="w "> </ span > < span class ="c1 "> // current()はinspect()関数内で呼ばれたので、スコープはinspect()関数</ span >
245244< 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 "> ctx</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> < a href ="current.html "> std::meta::access_context::current</ a > </ span > < span class ="p "> ();</ span >
246- < span class ="w "> </ span > < span class ="c1 " > // C内部からcurrent()を呼んだので、スコープはC </ 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 " > "scope: {}" </ 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 "> ctx</ span > < span class ="p "> .</ span > < span class ="n "> < span style ="color:#ff0000 "> scope()</ span > </ 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 " > "inspect()のスコープ: {}" </ span > < span class =" p " > , </ span >
246+ < 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 "> ctx</ span > < span class ="p "> .</ span > < span class ="n "> < span style ="color:#ff0000 "> scope()</ span > </ span > < span class ="p "> ));</ span >
248247< span class ="w "> </ span > < span class ="p "> }</ span >
249248< span class ="p "> };</ span >
250249
250+ < span class ="kt "> void</ span > < span class ="w "> </ span > < span class ="nf "> free_function</ span > < span class ="p "> ()</ span > < span class ="w "> </ span > < span class ="p "> {</ span >
251+ < span class ="w "> </ span > < span class ="c1 "> // current()はfree_function()内で呼ばれたので、スコープはfree_function()</ span >
252+ < 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 "> ctx</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> < a href ="current.html "> std::meta::access_context::current</ a > </ span > < span class ="p "> ();</ span >
253+ < span class ="w "> </ span > < span class ="n "> < a href ="../../print/println.html "> std::println</ a > </ span > < span class ="p "> (</ span > < span class ="s "> "free_function()のスコープ: {}"</ span > < span class ="p "> ,</ span >
254+ < 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 "> ctx</ span > < span class ="p "> .</ span > < span class ="n "> < span style ="color:#ff0000 "> scope()</ span > </ span > < span class ="p "> ));</ span >
255+ < span class ="p "> }</ span >
256+
251257< 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 >
258+ < span class ="w "> </ span > < span class ="c1 "> // current()はmain()内で呼ばれたので、スコープはmain()</ span >
259+ < 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 "> ctx</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> < a href ="current.html "> std::meta::access_context::current</ a > </ span > < span class ="p "> ();</ span >
260+ < span class ="w "> </ span > < span class ="n "> < a href ="../../print/println.html "> std::println</ a > </ span > < span class ="p "> (</ span > < span class ="s "> "main()のスコープ: {}"</ span > < span class ="p "> ,</ span >
261+ < 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 "> ctx</ span > < span class ="p "> .</ span > < span class ="n "> < span style ="color:#ff0000 "> scope()</ span > </ span > < span class ="p "> ));</ span >
262+
252263< span class ="w "> </ span > < span class ="n "> C</ span > < span class ="o "> ::</ span > < span class ="n "> inspect</ span > < span class ="p "> ();</ span >
264+ < span class ="w "> </ span > < span class ="n "> free_function</ span > < span class ="p "> ();</ span >
253265< span class ="p "> }</ span >
254266</ code > </ pre > </ div >
255267</ div > </ p >
256268< h4 > 出力例</ h4 >
257- < p > < pre > < code > scope: C
269+ < p > < pre > < code > main()のスコープ: int main()
270+ inspect()のスコープ: static void C::inspect()
271+ free_function()のスコープ: void free_function()
258272</ code > </ pre > </ p >
259273< h2 > バージョン</ h2 >
260274< h3 > 言語</ h3 >
@@ -264,7 +278,7 @@ <h3>言語</h3>
264278< h3 > 処理系</ h3 >
265279< ul >
266280< li > < a href ="../../../implementation.html#clang "> Clang</ a > : ??</ li >
267- < 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 >
268282< li > < a href ="../../../implementation.html#visual_cpp "> Visual C++</ a > : ??</ li >
269283</ ul >
270284< h2 > 参照</ h2 >
0 commit comments