|
68 | 68 |
|
69 | 69 | </head>
|
70 | 70 | <body>
|
71 |
| -<header data-kunai-mdinfo="{"meta": {"cpp": ["cpp26"]}, "sources": [{"id": "921cbd6682920a0d707f240b899e7c5e322c6115", "source": "#include <iostream>\n\nint main() {\n constexpr unsigned char image_binary[] = {\n #embed \"image.bin\"\n };\n std::cout << std::hex;\n for (unsigned char c : image_binary) {\n std::cout << static_cast<int>(c) << ' ';\n }\n std::cout << std::endl;\n}\n"}, {"id": "55a07c77eb3321842dfd33d25172b088933159c2", "source": "int main() {\n constexpr char text[] = { \n #embed \"test.txt\"\n };\n}\n"}, {"id": "320f6158475c3bbdb9ba0e2894a8d83860518d63", "source": "int main() {\n constexpr unsigned char limited_data[] = {\n #embed \"data.bin\" limit(1024);\n };\n constexpr unsigned char prefixed_data[] = {\n #embed \"data.bin\" prefix(0x01, 0x02, 0x03)\n };\n constexpr unsigned char suffixed_data[] = {\n #embed \"data.bin\" suffix(0xFE, 0xFF)\n };\n constexpr unsigned char safe_data[] = {\n #embed \"data.bin\" if_empty(0x00)\n };\n}\n"}], "page_id": ["lang", "cpp26", "embed"]}"> |
| 71 | +<header data-kunai-mdinfo="{"meta": {"cpp": ["cpp26"]}, "sources": [{"id": "921cbd6682920a0d707f240b899e7c5e322c6115", "source": "#include <iostream>\n\nint main() {\n constexpr unsigned char image_binary[] = {\n #embed \"image.bin\"\n };\n std::cout << std::hex;\n for (unsigned char c : image_binary) {\n std::cout << static_cast<int>(c) << ' ';\n }\n std::cout << std::endl;\n}\n"}, {"id": "55a07c77eb3321842dfd33d25172b088933159c2", "source": "int main() {\n constexpr char text[] = { \n #embed \"test.txt\"\n };\n}\n"}, {"id": "320f6158475c3bbdb9ba0e2894a8d83860518d63", "source": "int main() {\n constexpr unsigned char limited_data[] = {\n #embed \"data.bin\" limit(1024);\n };\n constexpr unsigned char prefixed_data[] = {\n #embed \"data.bin\" prefix(0x01, 0x02, 0x03)\n };\n constexpr unsigned char suffixed_data[] = {\n #embed \"data.bin\" suffix(0xFE, 0xFF)\n };\n constexpr unsigned char safe_data[] = {\n #embed \"data.bin\" if_empty(0x00)\n };\n}\n"}, {"id": "ecc783028c04f5912ccf9febaf1895f5233e7f88", "source": "int main() {\n constexpr unsigned char combined_data[] = {\n #embed \"data.bin\" limit(1024) prefix(0x01, 0x02) suffix(0xFF) if_empty(0x00)\n };\n}\n"}], "page_id": ["lang", "cpp26", "embed"]}"> |
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="2025-04-03T08:54:01"> |
192 |
| - 2025年04月03日 08時54分01秒 |
| 191 | + <span itemprop="datePublished" content="2025-04-04T09:52:54"> |
| 192 | + 2025年04月04日 09時52分54秒 |
193 | 193 | </span>
|
194 | 194 | <br/>
|
195 | 195 | <span itemprop="author" itemscope itemtype="http://schema.org/Person">
|
@@ -270,6 +270,16 @@ <h2>仕様</h2>
|
270 | 270 | <li><code>suffix(0xFE, 0xFF)</code>では、<code>data.bin</code>の内容のあとに<code>0xFE 0xFF</code>のバイト列を追加している。</li>
|
271 | 271 | <li><code>if_empty(0x00)</code>では、<code>data.bin</code>がからであった場合、<code>0x00</code>のバイト列を格納している。</li>
|
272 | 272 | </ul>
|
| 273 | +<p>また、<code>#embed</code>ディレクティブは、複数のパラメータを<strong>順不同</strong>で組み合わせて指定することもできる。</p> |
| 274 | +<p><div class="yata" id="ecc783028c04f5912ccf9febaf1895f5233e7f88"><div class="codehilite"><pre><span></span><code><span class="kt">int</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span> |
| 275 | + <span class="k">constexpr</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="n">combined_data</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span> |
| 276 | + <span class="cp">#embed "data.bin" limit(1024) prefix(0x01, 0x02) suffix(0xFF) if_empty(0x00)</span> |
| 277 | + <span class="p">};</span> |
| 278 | +<span class="p">}</span> |
| 279 | +</code></pre></div> |
| 280 | +</div> |
| 281 | +これは、<code>limit(1024)</code>でファイルサイズを1024バイトに制限し、<code>prefix(0x01, 0x02)</code>で先頭バイト列<code>0x01 0x02</code>を追加し、 |
| 282 | +<code>suffix(0xFF)</code>で末尾<code>0xFF</code>を追加し、<code>if_empty(0x00)</code>で空の場合は<code>0x00</code>を格納することになる。</p> |
273 | 283 | <h2>参照</h2>
|
274 | 284 | <ul>
|
275 | 285 | <li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p1967r14.html" target="_blank">P1967R14 #embed - a scannable, tooling-friendly binary resource inclusion mechanism</a></li>
|
|
0 commit comments