<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF xmlns="http://purl.org/rss/1.0/" xml:lang="ja"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:admin="http://webns.net/mvcb/"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
	<channel rdf:about="https://programming-place.net/">
		<title>Programming Place Plus</title>
		<link>https://programming-place.net/</link>
		<description>プログラミングに関する学習サイトです。現在は、Ｃ言語、C++、アルゴリズムとデータ構造を扱っています。</description>
		<admin:generatorAgent rdf:resource="http://www.nishishi.com/soft/rssmaker/" />
		<dc:date>2026-03-28T14:07:09+09:00</dc:date>
		<dc:creator>K.Y (Programming Place)</dc:creator>
		<dc:subject>C, C++</dc:subject>
		<dc:rights>Copyright (c) 2024, K.Y (Programming Place)</dc:rights>
		<sy:updatePeriod>daily</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
		<items>
			<rdf:Seq>
				<rdf:li rdf:resource="https://programming-place.net/ppp/contents/weekly/2026/weekly_0070.html" />
			</rdf:Seq>
		</items>
	</channel>
	<!-- ENTRIES -->
	<item rdf:about="https://programming-place.net/ppp/contents/weekly/2026/weekly_0070.html">
		<title>Weekly PPP Vol.70 | Programming Place Plus　Weekly PPP</title>
		<link>https://programming-place.net/ppp/contents/weekly/2026/weekly_0070.html</link>
			<description><![CDATA[<a href="../../../index.html">トップページ</a> ＞ <a href="../index.html">Weekly PPP</a>]]></description>
		<dc:date>2026-03-28T13:54:38+09:00</dc:date>
		<dc:subject>関連ページ</dc:subject>
		<content:encoded><![CDATA[<img src="https://programming-place.net/OGP/contents/weekly/2026/weekly_0070.png"><header id="title-block-header">
<h1 class="title">Weekly PPP Vol.70 | Programming Place Plus　Weekly PPP</h1>
</header>
<!-- パンくずリスト -->
<p><a href="../../../index.html">トップページ</a> ＞ <a href="../index.html">Weekly PPP</a></p>
<section id="weekly-ppp-vol.70-20263212026327" class="level2">
<h2><span id="Weekly">Weekly PPP Vol.70 (<time datetime="2026-03-21">2026/3/21</time>～<time datetime="2026-03-27">2026/3/27</time>)</span> <a href="#Weekly"
class="clip">&#x1f517;</a></h2>
<p>当サイトで扱っているテーマやそれに近しい分野から、直近１週間ぐらいの Web記事や書籍などの情報を紹介します。管理者が目を通したタイミングが遅いこともあるので、実際に公開された時期はもっと古い可能性があります。</p>
<p>「難易度」は、「入門」「初級」「中級」「上級」の４段階で、大体以下のような感覚で割り当てています。</p>
<ul>
<li>「入門」は、その分野についてまだほとんど知識を持っていないが、興味を持っている人向け</li>
<li>「初級」は、その分野を学び始めた学習中の人向け</li>
<li>「中級」は、その分野での活動に取り組んでいるが、比較的経験が浅い人向け（新人～数年程度）</li>
<li>「上級」は、その分野での活動を続けて、比較的長く経験を積んでいる人向け</li>
</ul>
<p><span class="note">当サイトで扱っているテーマから外れた情報については、<a href="https://x.com/pplace_ky">X</a> や<a href="https://b.hatena.ne.jp/ppp-lab/bookmark">はてなブックマーク</a>で扱っています。</span></p>
<p><span class="s">本ページはアフィリエイトプログラムによる収益を得ています。ページ内のリンクから、各種販売サイトに移動して商品を購入されると、Programming Place 管理者に紹介料が支払われます。</span></p>
<p><br />
</p>
<div class="ad_upper">
<!-- ページ上部広告 -->
<ins class="adsbygoogle" style="display:block;height=90px" data-ad-client="ca-pub-1665271966164067" data-ad-slot="7960534398" data-ad-format="auto">
</ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<hr />
</section>
<section id="c26-a-user-friendly-assert-macro-sandor-dargos-blog" class="level2">
<h2><span id="cpp_01">C++26: A User-Friendly assert() macro | Sandor Dargo’s Blog</span> <a href="#cpp_01"
class="clip">&#x1f517;</a></h2>
<ul>
<li><a href="https://www.sandordargo.com/blog/%3Ctime%20datetime=%222026-03-25%22%3E2026/03/25%3C/time%3E/cpp26-user-friendly-assert">https://www.sandordargo.com/blog/<time datetime="2026-03-25">2026/03/25</time>/cpp26-user-friendly-assert</a></li>
<li>分類: C++</li>
<li>難易度: 中級</li>
</ul>
<p>Ｃ言語にもある assertマクロに関して、C++ ではテンプレートやラムダ式などの使用時に実引数内に <code>,</code> や　<code>{}</code> が出現するため解析がうまくいかず、不可解なコンパイルエラーになってしまう問題があります。C++26 で assertマクロを可変引数マクロに変更することによって解消されることを紹介しています。</p>
<p>記事中にもあるとおり、<code>()</code> で全体を取り囲むことで修正することは可能で、従来はそうやって回避していました。</p>
<section id="関連ページ" class="level3">
<h3>関連ページ</h3>
<ul>
<li><a href="https://yohhoy.hatenadiary.jp/entry/20231206/p1">NEO assertマクロ - yohhoyの日記</a></li>
<li><a href="https://cpprefjp.github.io/reference/cassert/assert.html">assert - cpprefjp C++日本語リファレンス</a></li>
</ul>
</section>
</section>
<section id="c20-ranges-vs-traditional-loops-when-to-use-stdviews-instead-of-raw-loops-tech-for-talk" class="level2">
<h2><span id="cpp_02">C++20 Ranges vs traditional loops: when to use?std::views?instead of raw loops ? Tech For Talk</span> <a href="#cpp_02"
class="clip">&#x1f517;</a></h2>
<ul>
<li><a href="https://techfortalk.co.uk/%3Ctime%20datetime=%222026-03-22%22%3E2026/03/22%3C/time%3E/c20-ranges-vs-traditional-loops-when-to-use-stdviews-instead-of-raw-loops/">https://techfortalk.co.uk/<time datetime="2026-03-22">2026/03/22</time>/c20-ranges-vs-traditional-loops-when-to-use-stdviews-instead-of-raw-loops/</a></li>
<li>分類: C++</li>
<li>難易度: 中級</li>
</ul>
<p>std::vector などのコンテナに大量のデータがあり、複数の処理を加えた結果を得たいとき、ループ内で愚直に処理の適用を繰り返すと、要件の変化や追加で管理が複雑化していくことがあります。この問題を改善する方法として、C++20 で追加された ranges を紹介しています。</p>
<section id="関連ページ-1" class="level3">
<h3>関連ページ</h3>
<ul>
<li><a href="https://cpprefjp.github.io/reference/ranges.html">ranges - cpprefjp C++日本語リファレンス</a></li>
</ul>
</section>
</section>
<section id="looking-at-unity-finally-made-me-understand-the-point-of-c-coroutines-mathieu-ropert" class="level2">
<h2><span id="cpp_03">Looking at Unity finally made me understand the point of C++ coroutines ・ Mathieu Ropert</span> <a href="#cpp_03"
class="clip">&#x1f517;</a></h2>
<ul>
<li><a href="https://mropert.github.io/%3Ctime%20datetime=%222026-03-20%22%3E2026/03/20%3C/time%3E/unity_cpp_coroutines/">https://mropert.github.io/<time datetime="2026-03-20">2026/03/20</time>/unity_cpp_coroutines/</a></li>
<li>分類: C++</li>
<li>難易度: 中級?上級</li>
</ul>
<p>Unity によるゲーム開発の事例の中で、エフェクトの生成や、一時的な動作を記述するためにコルーチンが使われていることを、C++ のコルーチンの使い所を説明する１つの例として紹介しています。</p>
<section id="関連ページ-2" class="level3">
<h3>関連ページ</h3>
<ul>
<li><a href="https://cpprefjp.github.io/lang/cpp20/coroutines.html">コルーチン [P0912R5] - cpprefjp C++日本語リファレンス</a></li>
</ul>
</section>
</section>
<section id="optimizing-a-lock-free-ring-buffer-david-alvarez-rosa-personal-website" class="level2">
<h2><span id="cpp_04">Optimizing a Lock-Free Ring Buffer | David Alvarez Rosa | Personal Website</span> <a href="#cpp_04"
class="clip">&#x1f517;</a></h2>
<ul>
<li><a href="https://david.alvarezrosa.com/posts/optimizing-a-lock-free-ring-buffer/">https://david.alvarezrosa.com/posts/optimizing-a-lock-free-ring-buffer/</a></li>
<li>分類: C++、アルゴリズムとデータ構造、マルチスレッド、最適化</li>
<li>難易度: 上級</li>
</ul>
<p>C++ でシンプルなリングバッファを実装し、mutex によるスレッドセーフな実装への修正、ロックフリーな方法への修正と進めていき、さらにメモリアクセスに関する高度な最適化を行い、スループットが大幅に改善することを解説しています。</p>
</section>
<section id="updates-to-github-copilot-interaction-data-usage-policy---the-github-blog" class="level2">
<h2><span id="ai_01">Updates to GitHub Copilot interaction data usage policy - The GitHub Blog</span> <a href="#ai_01"
class="clip">&#x1f517;</a></h2>
<ul>
<li><a href="https://github.blog/news-insights/company-news/updates-to-github-copilot-interaction-data-usage-policy/">https://github.blog/news-insights/company-news/updates-to-github-copilot-interaction-data-usage-policy/</a></li>
<li>分類: GitHub Copilot、GitHub</li>
<li>難易度: 初級?</li>
</ul>
<p>GitHub Copilot のインタラクションデータ利用ポリシーが更新されることが発表され、4月24日以降、明示的に拒否の設定（オプトアウト）を行わないと、インタラクションデータが AI の学習に利用されるようになります。対象は Copilot Free、Copilot Pro、Copilot Pro+ を使用している個人ユーザーです。</p>
<p>インタラクションデータは、ユーザーが Copilot を使用しているときの入力や、Copilot が生成したコード、チャットやインラインサジェストといったような、Copilot とのやり取りの中で発生しているすべてのデータを指します。これまでどおり、プライベートリポジトリに置かれているファイル自体が学習対象にはならないものの、Copilot を経由した時点で学習対象になるということなので、注意が必要です。</p>
<section id="関連ページ-3" class="level3">
<h3>関連ページ</h3>
<ul>
<li><a href="https://forest.watch.impress.co.jp/docs/news/2096552.html">「GitHub Copilot」個人ユーザーは要確認！ 拒否しないとAIの学習に利用されるように - 窓の杜</a></li>
<li><a href="https://dev.classmethod.jp/articles/github-copilot-interaction-data-ai-training-opt-out-2026/">4月24日から GitHub Copilot Free/Pro/Pro+ のインタラクションデータが AI モデルの学習に使用されるようになるので設定を確認した | DevelopersIO</a></li>
</ul>
</section>
</section>
<section id="インプレスブックス10周年記念セール---インプレスブックス" class="level2">
<h2><span id="sale_01">インプレスブックス10周年記念セール - インプレスブックス</span> <a href="#sale_01"
class="clip">&#x1f517;</a></h2>
<ul>
<li><a href="https://book.impress.co.jp/items/10th-sale">https://book.impress.co.jp/items/10th-sale</a></li>
<li>分類: 書籍、ショッピング</li>
<li>難易度: 入門～</li>
</ul>
<p>インプレスブックスにて、「インプレスブックス10周年記念セール」が実施されています。対象商品が通常価格の 30% OFF に加え、クーポンコードの利用で最大 51% OFF になります。終了は 4月13日（月）です。</p>
<p>対象になっている本の中から、当サイトの<a href="../../bookshelf/index.html">書籍紹介ページ</a>で紹介していて、おすすめ度が高いものをいくつかピックアップします。</p>
<table>
<colgroup>
<col style="width: 39%" />
<col style="width: 17%" />
<col style="width: 10%" />
<col style="width: 32%" />
</colgroup>
<thead>
<tr>
<th>タイトル</th>
<th>リンク</th>
<th>価格</th>
<th>コメント</th>
</tr>
</thead>
<tbody>
<tr>
<td>Game Programming Patterns</td>
<td><a href="https://book.impress.co.jp/books/1114101121">インプレス</a> <br> <a href="game_programming/978-4844338901.html">当サイト紹介ページ</a></td>
<td>4180 ⇒ 2926</td>
<td><a href="https://gameprogrammingpatterns.com/contents.html">英語版は無料で読めます</a></td>
</tr>
</tbody>
</table>
</section>
<section id="seshopスプリングキャンペーンpdf40還元-seshop-翔泳社の本電子書籍通販サイト" class="level2">
<h2><span id="sale_02">[2026.3.24～3.31]SEshopスプリングキャンペーン(PDF40%還元)｜ SEshop｜ 翔泳社の本・電子書籍通販サイト</span> <a href="#sale_02"
class="clip">&#x1f517;</a></h2>
<ul>
<li><a href="https://www.seshop.com/campaign/point/20260324">https://www.seshop.com/campaign/point/20260324</a></li>
<li>分類: 書籍、ショッピング</li>
<li>難易度: 入門～</li>
</ul>
<p>SEshopにて、「SEshopスプリングキャンペーン(PDF40%還元)」が実施されています。終了は 3月31日（火）です。</p>
<p>対象になっている本の中から、当サイトの<a href="../../bookshelf/index.html">書籍紹介ページ</a>で紹介していて、おすすめ度が高いものをいくつかピックアップします。</p>
<table>
<colgroup>
<col style="width: 39%" />
<col style="width: 17%" />
<col style="width: 10%" />
<col style="width: 32%" />
</colgroup>
<thead>
<tr>
<th>タイトル</th>
<th>リンク</th>
<th>価格</th>
<th>コメント</th>
</tr>
</thead>
<tbody>
<tr>
<td>独習C 新版</td>
<td><a href="https://www.seshop.com/product/detail/21680">SEshop</a> <br> <a href="../../bookshelf/c/978-4798150246.html">当サイト紹介ページ</a></td>
<td>3300 (1200pt 還元)</td>
<td></td>
</tr>
<tr>
<td>独習C++ 新版</td>
<td><a href="https://www.seshop.com/product/detail/23262">SEshop</a> <br> <a href="../../bookshelf/cpp/978-4798150239.html">当サイト紹介ページ</a></td>
<td>3718 (1352pt 還元)</td>
<td></td>
</tr>
<tr>
<td>C++ ゼロからはじめるプログラミング</td>
<td><a href="https://www.seshop.com/product/detail/27136">SEshop</a> <br> <a href="../../bookshelf/cpp/978-4798191218.html">当サイト紹介ページ</a></td>
<td>2420 (880pt 還元)</td>
<td></td>
</tr>
<tr>
<td>Exercise C++</td>
<td><a href="https://www.seshop.com/product/detail/27081">SEshop</a> <br> <a href="../../bookshelf/cpp/978-4798190198.html">当サイト紹介ページ</a></td>
<td>2508 (912pt 還元)</td>
<td></td>
</tr>
<tr>
<td>ゲームプログラミングC++</td>
<td><a href="https://www.seshop.com/product/detail/22519">SEshop</a> <br> <a href="../../bookshelf/game_programming/978-4798157610.html">当サイト紹介ページ</a></td>
<td>5060 (1840pt 還元)</td>
<td></td>
</tr>
<tr>
<td>組込みソフトウェア開発のための構造化プログラミング</td>
<td><a href="https://www.seshop.com/product/detail/21087">SEshop</a> <br> <a href="../../bookshelf/develop/978-4798147611.html">当サイト紹介ページ</a></td>
<td>2750 (1000pt 還元)</td>
<td></td>
</tr>
<tr>
<td>ソフトウェア開発現場の「失敗」集めてみた。</td>
<td><a href="https://www.seshop.com/product/detail/26313">SEshop</a> <br> <a href="../../bookshelf/develop/978-4798185187.html">当サイト紹介ページ</a></td>
<td>2420 (880pt還元)</td>
<td></td>
</tr>
<tr>
<td>技術者のためのテクニカルライティング入門講座 第2版</td>
<td><a href="https://www.seshop.com/product/detail/26683">SEshop</a> <br> <a href="../../bookshelf/writing/978-4798188423.html">当サイト紹介ページ</a></td>
<td>2640 (960pt還元)</td>
<td></td>
</tr>
<tr>
<td>増補改訂版 図解でわかる！理工系のためのよい文章の書き方</td>
<td><a href="https://www.seshop.com/product/detail/26511">SEshop</a> <br> <a href="../../bookshelf/writing/978-4798186771.html">当サイト紹介ページ</a></td>
<td>2200 (800pt還元)</td>
<td></td>
</tr>
<tr>
<td>「分かった！」と思わせる説明の技術</td>
<td><a href="https://www.seshop.com/product/detail/27125">SEshop</a> <br> <a href="../../bookshelf/writing/978-4798192260.html">当サイト紹介ページ</a></td>
<td>1958 (712pt 還元)</td>
<td></td>
</tr>
<tr>
<td>GitLabに学ぶ パフォーマンスを最大化させるドキュメンテーション技術</td>
<td><a href="https://www.seshop.com/product/detail/26670">SEshop</a> <br> <a href="../../bookshelf/writing/978-4798185705.html">当サイト紹介ページ</a></td>
<td>1980 (720pt 還元)</td>
<td></td>
</tr>
<tr>
<td>「技術書」の読書術 達人が教える選び方・読み方</td>
<td><a href="https://www.seshop.com/product/detail/25422">SEshop</a> <br> <a href="../../bookshelf/programmer/978-4798171548.html">当サイト紹介ページ</a></td>
<td>2200 (800pt還元)</td>
<td></td>
</tr>
</tbody>
</table>
</section>
<section id="honto---春の新生活フェア-経済ビジネス暮らし実用など半額電子書籍" class="level2">
<h2><span id="sale_03">honto - 春の新生活フェア 経済・ビジネス・暮らし・実用など半額：電子書籍</span> <a href="#sale_03"
class="clip">&#x1f517;</a></h2>
<ul>
<li><a href="https://honto.jp/cp/ebook/2026/haru-shinseikatsu.html?cid=eb_buusp_04">https://honto.jp/cp/ebook/2026/haru-shinseikatsu.html?cid=eb_buusp_04</a></li>
<li>分類: 書籍、ショッピング</li>
<li>難易度: 入門～</li>
</ul>
<p>hontoにて、「春の新生活フェア 経済・ビジネス・暮らし・実用など半額：電子書籍」が実施されています。終了は 4月6日（月）です。</p>
<p>対象になっている本の中から、当サイトの<a href="../../bookshelf/index.html">書籍紹介ページ</a>で紹介していて、おすすめ度が高いものをいくつかピックアップします。</p>
<table>
<colgroup>
<col style="width: 39%" />
<col style="width: 17%" />
<col style="width: 10%" />
<col style="width: 32%" />
</colgroup>
<thead>
<tr>
<th>タイトル</th>
<th>リンク</th>
<th>価格</th>
<th>コメント</th>
</tr>
</thead>
<tbody>
<tr>
<td>新・明解C言語 入門編 第2版</td>
<td><a href="https://honto.jp/ebook/pd_31214762.html">honto</a> <br> <a href="../../bookshelf/c/978-4815609795.html">当サイト紹介ページ</a></td>
<td>2530 ⇒ 1265</td>
<td></td>
</tr>
<tr>
<td>新・明解C言語 中級編 第2版</td>
<td><a href="https://honto.jp/ebook/pd_31977577.html">honto</a> <br> <a href="../../bookshelf/c/978-4815616335.html">当サイト紹介ページ</a></td>
<td>2750 ⇒ 1375</td>
<td></td>
</tr>
<tr>
<td>新・明解C言語 実践編 第2版</td>
<td><a href="https://honto.jp/ebook/pd_32344547.html">honto</a> <br> <a href="../../bookshelf/c/978-4815617820.html">当サイト紹介ページ</a></td>
<td>2750 ⇒ 1375</td>
<td></td>
</tr>
<tr>
<td>新・明解C言語で学ぶアルゴリズムとデータ構造 第2版</td>
<td><a href="https://honto.jp/ebook/pd_31005827.html">honto</a> <br> <a href="../../bookshelf/algorithm/978-4815609788.html">当サイト紹介ページ</a></td>
<td>2750 ⇒ 1375</td>
<td></td>
</tr>
</tbody>
</table>
</section>
<section id="programming-place-の更新履歴" class="level2">
<h2><span id="pp_01">Programming Place の更新履歴</span> <a href="#pp_01"
class="clip">&#x1f517;</a></h2>
<p>当サイトでこの１週間に行った更新の内容を取り上げます。</p>
<ul>
<li><span class="new">《新規》</span><a href="../../glossary/index.html">用語集</a> ＞「<a href="../../glossary/ka/function_type.html">関数型</a>」を追加（836個目）</li>
<li><span class="new">《新規》</span>ソースコードの右側に、コードをクリップボードにコピーするボタンを設置</li>
</ul>
<p><a href="../../../update_log.html">過去のすべての更新履歴はこちらから</a>。</p>
</section>
<section id="更新履歴" class="level2">
<h2><span id="history">更新履歴</span> <a href="#history"
class="clip">&#x1f517;</a></h2>
<ul>
<li>’<time datetime="2026-03-28">2026/3/28</time>
<ul>
<li>新規作成</li>
</ul></li>
</ul>
<p><br />
</p>
<hr />
<ul>
<li><a href="weekly_0069.html">先週の Weekly PPP へ</a></li>
<li><a href="../index.html">Weekly PPP のトップページへ</a></li>
<li><a href="../../../index.html">Programming Place Plus のトップページへ</a></li>
</ul>
<hr />
<!-- バリューコママース LinkSwitch -->
<script type="text/javascript" language="javascript">
var vc_pid = "889457048";
</script>
<script type="text/javascript" src="//aml.valuecommerce.com/vcdal.js" async></script>
</section>
<!-- 各種 SNSボタン類 -->
<hr>
<table cellpadding="8" border="1">
<tr>
<!-- はてなブックマーク -->
<td>
<a href="javascript:window.location.href='https://b.hatena.ne.jp/entry/'+location.href;">はてなブックマーク に保存</a>
</td>
<!-- Facebook -->
<td>
<a href="javascript:window.location.href='https://www.facebook.com/sharer/sharer.php?u='+location.href;">Facebook でシェア</a>
</td>
<!-- X -->
<td>
X で <a href="javascript:window.location.href='https://x.com/share?url='+location.href;">ポスト</a>／<a href="https://x.com/pplace_ky?ref_src=twsrc%5Etfw">フォロー</a>
</td>
</tr>
<tr>
<!-- LINE -->
<td>
<a href="javascript:window.location.href='http://line.me/R/msg/text/'+location.href;">LINE で送る</a>
</td>
<!-- note -->
<td>
<a href="javascript:window.location.href='https://note.com/intent/post?url='+location.href;" target="_blank" rel="noopener">noteで書く</a>
</td>
<!-- RSS 1.0 -->
<td>
<a href="https://programming-place.net/rss10.xml">
<img src="https://programming-place.net/ppp/contents/common/image/rss_001_c-trans.png" alt="rss1.0 取得ボタン" width="24" height="24">
</a>
<a href="https://programming-place.net/rss10.xml">RSS</a>
</td>
</tr>
<tr>
<td>
<a href="https://programming-place.net/ppp/personal.html">管理者情報</a>
</td>
<td>
<a href="https://programming-place.net/ppp/privacy_policy.html">プライバシーポリシー</a>
</td>
</tr>
</table>
<span id="back_to_top"><a href="#">先頭へ戻る</a></span>
<script>
document.addEventListener('DOMContentLoaded', function() {
document.querySelectorAll('div.sourceCode').forEach(function(block) {
var wrapper = document.createElement('div');
wrapper.className = 'code-block-container';
block.parentNode.insertBefore(wrapper, block);
wrapper.appendChild(block);
var btn = document.createElement('button');
btn.textContent = 'コピー';
btn.className = 'copy-code-btn';
btn.setAttribute('type', 'button');
btn.setAttribute('aria-label', 'コードをクリップボードにコピー');
wrapper.appendChild(btn);
btn.addEventListener('click', function() {
var code = block.querySelector('code');
var text = code ? code.innerText : '';
function showCopied() {
btn.textContent = 'コピーしました';
btn.classList.add('copied');
setTimeout(function() {
btn.textContent = 'コピー';
btn.classList.remove('copied');
}, 2000);
}
if (navigator.clipboard) {
navigator.clipboard.writeText(text).then(showCopied).catch(function() {
fallbackCopy(text, showCopied);
});
} else {
fallbackCopy(text, showCopied);
}
});
});
function fallbackCopy(text, callback) {
var ta = document.createElement('textarea');
ta.value = text;
ta.style.cssText = 'position:fixed;opacity:0;';
document.body.appendChild(ta);
ta.select();
try { document.execCommand('copy'); } catch(e) {}
document.body.removeChild(ta);
callback();
}
});
</script>
]]></content:encoded>
	</item>
	<!-- /ENTRIES -->
</rdf:RDF>
