Skip to content

Commit 2dc4ef8

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent cb79449 commit 2dc4ef8

File tree

3 files changed

+54
-2722
lines changed

3 files changed

+54
-2722
lines changed

lang/cpp26/embed.html

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868

6969
</head>
7070
<body>
71-
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;cpp&#34;: [&#34;cpp26&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;921cbd6682920a0d707f240b899e7c5e322c6115&#34;, &#34;source&#34;: &#34;#include &lt;iostream&gt;\n\nint main() {\n constexpr unsigned char image_binary[] = {\n #embed \&#34;image.bin\&#34;\n };\n std::cout &lt;&lt; std::hex;\n for (unsigned char c : image_binary) {\n std::cout &lt;&lt; static_cast&lt;int&gt;(c) &lt;&lt; &#39; &#39;;\n }\n std::cout &lt;&lt; std::endl;\n}\n&#34;}, {&#34;id&#34;: &#34;55a07c77eb3321842dfd33d25172b088933159c2&#34;, &#34;source&#34;: &#34;int main() {\n constexpr char text[] = { \n #embed \&#34;test.txt\&#34;\n };\n}\n&#34;}, {&#34;id&#34;: &#34;320f6158475c3bbdb9ba0e2894a8d83860518d63&#34;, &#34;source&#34;: &#34;int main() {\n constexpr unsigned char limited_data[] = {\n #embed \&#34;data.bin\&#34; limit(1024);\n };\n constexpr unsigned char prefixed_data[] = {\n #embed \&#34;data.bin\&#34; prefix(0x01, 0x02, 0x03)\n };\n constexpr unsigned char suffixed_data[] = {\n #embed \&#34;data.bin\&#34; suffix(0xFE, 0xFF)\n };\n constexpr unsigned char safe_data[] = {\n #embed \&#34;data.bin\&#34; if_empty(0x00)\n };\n}\n&#34;}], &#34;page_id&#34;: [&#34;lang&#34;, &#34;cpp26&#34;, &#34;embed&#34;]}">
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;cpp&#34;: [&#34;cpp26&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;921cbd6682920a0d707f240b899e7c5e322c6115&#34;, &#34;source&#34;: &#34;#include &lt;iostream&gt;\n\nint main() {\n constexpr unsigned char image_binary[] = {\n #embed \&#34;image.bin\&#34;\n };\n std::cout &lt;&lt; std::hex;\n for (unsigned char c : image_binary) {\n std::cout &lt;&lt; static_cast&lt;int&gt;(c) &lt;&lt; &#39; &#39;;\n }\n std::cout &lt;&lt; std::endl;\n}\n&#34;}, {&#34;id&#34;: &#34;55a07c77eb3321842dfd33d25172b088933159c2&#34;, &#34;source&#34;: &#34;int main() {\n constexpr char text[] = { \n #embed \&#34;test.txt\&#34;\n };\n}\n&#34;}, {&#34;id&#34;: &#34;320f6158475c3bbdb9ba0e2894a8d83860518d63&#34;, &#34;source&#34;: &#34;int main() {\n constexpr unsigned char limited_data[] = {\n #embed \&#34;data.bin\&#34; limit(1024);\n };\n constexpr unsigned char prefixed_data[] = {\n #embed \&#34;data.bin\&#34; prefix(0x01, 0x02, 0x03)\n };\n constexpr unsigned char suffixed_data[] = {\n #embed \&#34;data.bin\&#34; suffix(0xFE, 0xFF)\n };\n constexpr unsigned char safe_data[] = {\n #embed \&#34;data.bin\&#34; if_empty(0x00)\n };\n}\n&#34;}, {&#34;id&#34;: &#34;ecc783028c04f5912ccf9febaf1895f5233e7f88&#34;, &#34;source&#34;: &#34;int main() {\n constexpr unsigned char combined_data[] = {\n #embed \&#34;data.bin\&#34; limit(1024) prefix(0x01, 0x02) suffix(0xFF) if_empty(0x00)\n };\n}\n&#34;}], &#34;page_id&#34;: [&#34;lang&#34;, &#34;cpp26&#34;, &#34;embed&#34;]}">
7272
<nav class="navbar navbar-default" role="navigation">
7373
<div class="container-fluid">
7474
<div class="navbar-header">
@@ -188,8 +188,8 @@
188188

189189
<p class="text-right"><small>
190190
最終更新日時(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秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -270,6 +270,16 @@ <h2>仕様</h2>
270270
<li><code>suffix(0xFE, 0xFF)</code>では、<code>data.bin</code>の内容のあとに<code>0xFE 0xFF</code>のバイト列を追加している。</li>
271271
<li><code>if_empty(0x00)</code>では、<code>data.bin</code>がからであった場合、<code>0x00</code>のバイト列を格納している。</li>
272272
</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>
273283
<h2>参照</h2>
274284
<ul>
275285
<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

Comments
 (0)