|
28 | 28 | <meta property="og:url" content="https://cpprefjp.github.io/reference/meta/is_enumerable_type.html" /> |
29 | 29 | <meta property="og:site_name" content="cpprefjp - C++日本語リファレンス" /> |
30 | 30 | <meta property="og:type" content="article" /> |
31 | | - <meta property="og:description" content="型が列挙可能型であるかを判定する。列挙可能型とは、[`enumerators_of()`](enumerators_of.md)で列挙子を取得できる列挙型である。" /> |
| 31 | + <meta property="og:description" content="型が列挙可能型であるかを判定する。" /> |
32 | 32 | <meta name="twitter:card" content="summary" /> |
33 | 33 | <meta name="twitter:title" content="std::meta::is_enumerable_type - cpprefjp C++日本語リファレンス" /> |
34 | 34 | <meta name="twitter:url" content="https://cpprefjp.github.io/reference/meta/is_enumerable_type.html" /> |
35 | | - <meta name="twitter:description" content="型が列挙可能型であるかを判定する。列挙可能型とは、[`enumerators_of()`](enumerators_of.md)で列挙子を取得できる列挙型である。" /> |
| 35 | + <meta name="twitter:description" content="型が列挙可能型であるかを判定する。" /> |
36 | 36 |
|
37 | 37 |
|
38 | 38 | <link rel="alternate" type="application/atom+xml" title="Atom" href="https://cpprefjp.github.io/rss.xml" /> |
|
68 | 68 |
|
69 | 69 | </head> |
70 | 70 | <body> |
71 | | -<header data-kunai-mdinfo="{"meta": {"header": ["meta"], "namespace": ["std::meta"], "id-type": ["function"], "cpp": ["cpp26"]}, "sources": [{"id": "c71cbab9eb542ae683adcead59c8e52fb6b7daae", "source": "#include <meta>\n\nenum Color { red, green, blue };\n\nint main() {\n static_assert(std::meta::is_enumerable_type(^^Color));\n}\n"}], "page_id": ["reference", "meta", "is_enumerable_type"]}"> |
| 71 | +<header data-kunai-mdinfo="{"meta": {"header": ["meta"], "namespace": ["std::meta"], "id-type": ["function"], "cpp": ["cpp26"]}, "sources": [{"id": "029203b30e5c31b7bd9db6bfa2e2fded24ba9cb4", "source": "#include <meta>\n\nenum class Color;\nstatic_assert(!std::meta::is_enumerable_type(^^Color));\nenum class Color { red, green, blue };\nstatic_assert( std::meta::is_enumerable_type(^^Color));\n\nclass S {};\nstatic_assert( std::meta::is_enumerable_type(^^S)); // \u5b8c\u5168\u306a\u30af\u30e9\u30b9\u578b\u3082\u5217\u6319\u53ef\u80fd\u578b\n\nenum class E {\n FALSE, TRUE,\n A = std::meta::is_enumerable_type(^^E) ? TRUE : FALSE\n};\nstatic_assert(E::A == E::FALSE); // \u5217\u6319\u578b\u81ea\u8eab\u306e\u5ba3\u8a00\u5185\u3067\u306f\u3001\u5217\u6319\u53ef\u80fd\u578b\u306b\u306a\u3089\u306a\u3044\n\nint main() {}\n"}], "page_id": ["reference", "meta", "is_enumerable_type"]}"> |
72 | 72 | <nav class="navbar navbar-default" role="navigation"> |
73 | 73 | <div class="container-fluid"> |
74 | 74 | <div class="navbar-header"> |
|
188 | 188 |
|
189 | 189 | <p class="text-right"><small> |
190 | 190 | 最終更新日時(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-25T07:34:33"> |
| 192 | + 2026年05月25日 07時34分33秒 |
193 | 193 | </span> |
194 | 194 | <br/> |
195 | 195 | <span itemprop="author" itemscope itemtype="http://schema.org/Person"> |
196 | | - <span itemprop="name">Akira Takahashi</span> |
| 196 | + <span itemprop="name">Raclamusi</span> |
197 | 197 | </span> |
198 | 198 | が更新 |
199 | 199 | </small></p> |
|
219 | 219 | </code></pre></div> |
220 | 220 | </p> |
221 | 221 | <h2>概要</h2> |
222 | | -<p>型が列挙可能型であるかを判定する。列挙可能型とは、<code><a href="enumerators_of.html">enumerators_of()</a></code>で列挙子を取得できる列挙型である。</p> |
| 222 | +<p>型が列挙可能型であるかを判定する。</p> |
| 223 | +<p>列挙可能型とは、次のいずれかを満たす型である:</p> |
| 224 | +<ul> |
| 225 | +<li>クラス型であり、<a class="cpprefjp-defined-word" data-desc="型のサイズを決定できる型。不完全型ではない型">完全型</a>である</li> |
| 226 | +<li>列挙型であり、その宣言に到達可能である(<code><a href="enumerators_of.html">enumerators_of()</a></code>で列挙子を取得できる)<ul> |
| 227 | +<li>ただし、その列挙型の宣言内では列挙可能型にならない</li> |
| 228 | +</ul> |
| 229 | +</li> |
| 230 | +</ul> |
223 | 231 | <h2><a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価結果となるオブジェクト・値">戻り値</a></h2> |
224 | | -<p><code>r</code>が列挙可能な列挙型を表す場合に<code>true</code>を返す。</p> |
| 232 | +<p><code>r</code>が列挙可能型を表す場合に<code>true</code>を返す。</p> |
225 | 233 | <h2>例</h2> |
226 | | -<p><div class="yata" id="c71cbab9eb542ae683adcead59c8e52fb6b7daae"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../meta.html"><meta></a></span> |
| 234 | +<p><div class="yata" id="029203b30e5c31b7bd9db6bfa2e2fded24ba9cb4"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../meta.html"><meta></a></span> |
227 | 235 |
|
228 | | -<span class="k">enum</span><span class="w"> </span><span class="nc">Color</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">red</span><span class="p">,</span><span class="w"> </span><span class="n">green</span><span class="p">,</span><span class="w"> </span><span class="n">blue</span><span class="w"> </span><span class="p">};</span> |
| 236 | +<span class="k">enum</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Color</span><span class="p">;</span> |
| 237 | +<span class="k">static_assert</span><span class="p">(</span><span class="o">!</span><span class="n">std</span><span class="o">::</span><span class="n">meta</span><span class="o">::</span><span class="n">is_enumerable_type</span><span class="p">(</span><span class="o">^^</span><span class="n">Color</span><span class="p">));</span> |
| 238 | +<span class="k">enum</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Color</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">red</span><span class="p">,</span><span class="w"> </span><span class="n">green</span><span class="p">,</span><span class="w"> </span><span class="n">blue</span><span class="w"> </span><span class="p">};</span> |
| 239 | +<span class="k">static_assert</span><span class="p">(</span><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">is_enumerable_type</span><span class="p">(</span><span class="o">^^</span><span class="n">Color</span><span class="p">));</span> |
229 | 240 |
|
230 | | -<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> |
231 | | -<span class="w"> </span><span class="k">static_assert</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">meta</span><span class="o">::</span><span class="n">is_enumerable_type</span><span class="p">(</span><span class="o">^^</span><span class="n">Color</span><span class="p">));</span> |
232 | | -<span class="p">}</span> |
| 241 | +<span class="k">class</span><span class="w"> </span><span class="nc">S</span><span class="w"> </span><span class="p">{};</span> |
| 242 | +<span class="k">static_assert</span><span class="p">(</span><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">is_enumerable_type</span><span class="p">(</span><span class="o">^^</span><span class="n">S</span><span class="p">));</span><span class="w"> </span><span class="c1">// 完全なクラス型も列挙可能型</span> |
| 243 | + |
| 244 | +<span class="k">enum</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">E</span><span class="w"> </span><span class="p">{</span> |
| 245 | +<span class="w"> </span><span class="n">FALSE</span><span class="p">,</span><span class="w"> </span><span class="n">TRUE</span><span class="p">,</span> |
| 246 | +<span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="o">=</span><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">is_enumerable_type</span><span class="p">(</span><span class="o">^^</span><span class="n">E</span><span class="p">)</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="n">TRUE</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">FALSE</span> |
| 247 | +<span class="p">};</span> |
| 248 | +<span class="k">static_assert</span><span class="p">(</span><span class="n">E</span><span class="o">::</span><span class="n">A</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">E</span><span class="o">::</span><span class="n">FALSE</span><span class="p">);</span><span class="w"> </span><span class="c1">// 列挙型自身の宣言内では、列挙可能型にならない</span> |
| 249 | + |
| 250 | +<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> |
233 | 251 | </code></pre></div> |
234 | 252 | </div></p> |
235 | 253 | <h3>出力</h3> |
|
0 commit comments