<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://mochiu.net/index.php?action=history&amp;feed=atom&amp;title=Qt%E3%81%AE%E5%9F%BA%E7%A4%8E_-_YAML</id>
	<title>Qtの基礎 - YAML - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://mochiu.net/index.php?action=history&amp;feed=atom&amp;title=Qt%E3%81%AE%E5%9F%BA%E7%A4%8E_-_YAML"/>
	<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=Qt%E3%81%AE%E5%9F%BA%E7%A4%8E_-_YAML&amp;action=history"/>
	<updated>2026-05-30T03:38:12Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://mochiu.net/index.php?title=Qt%E3%81%AE%E5%9F%BA%E7%A4%8E_-_YAML&amp;diff=11554&amp;oldid=prev</id>
		<title>Wiki: 文字列「__FORCETOC__」を「{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This pag…</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=Qt%E3%81%AE%E5%9F%BA%E7%A4%8E_-_YAML&amp;diff=11554&amp;oldid=prev"/>
		<updated>2024-10-14T01:58:33Z</updated>

		<summary type="html">&lt;p&gt;文字列「__FORCETOC__」を「{{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This pag…&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2024年10月14日 (月) 10:58時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l360&quot;&gt;360行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;360行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{#seo:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;__FORCETOC__&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;__FORCETOC__&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[カテゴリ:Qt]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[カテゴリ:Qt]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mochiu_wiki:diff:1.41:old-10635:rev-11554:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=Qt%E3%81%AE%E5%9F%BA%E7%A4%8E_-_YAML&amp;diff=10635&amp;oldid=prev</id>
		<title>2024年8月20日 (火) 07:38にWikiによる</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=Qt%E3%81%AE%E5%9F%BA%E7%A4%8E_-_YAML&amp;diff=10635&amp;oldid=prev"/>
		<updated>2024-08-20T07:38:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2024年8月20日 (火) 16:38時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l28&quot;&gt;28行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;28行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;特に、設定ファイルやデータ交換の用途で広く使用されており、多くのモダンなアプリケーションやフレームワークでYAMLが採用されている。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;特に、設定ファイルやデータ交換の用途で広く使用されており、多くのモダンなアプリケーションやフレームワークでYAMLが採用されている。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Qtには、YAML処理のための直接的なサポートが無いため、サードパーティのライブラリを使用する必要がある。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;YAMLの処理によく使用されるライブラリの1つにyaml-cppライブラリが存在する。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== YAMLの基本的な構造 ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* インデントが重要&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* インデントが重要&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l36&quot;&gt;36行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;42行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*: 特殊文字を含む場合や曖昧さを避けたい場合は、文字列をクォートで囲むことができる。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*: 特殊文字を含む場合や曖昧さを避けたい場合は、文字列をクォートで囲むことができる。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;QtにはYAML処理のための直接的なサポートが無いため、サードパーティのライブラリを使用する必要がある。&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;YAMLの処理によく使用されるライブラリの1つにyaml-cppライブラリが存在する。&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== YAMLの基本的な構造 ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  # This is a comment&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  # This is a comment&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mochiu_wiki:diff:1.41:old-10630:rev-10635:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=Qt%E3%81%AE%E5%9F%BA%E7%A4%8E_-_YAML&amp;diff=10630&amp;oldid=prev</id>
		<title>Wiki: ページの作成:「== 概要 == YAML (YAML Ain&#039;t Markup Language) は、人間にとって読み書きしやすいデータシリアライゼーション形式である。&lt;br&gt; 設定ファイル、データ交換、データ保存等、様々な用途で使用されている。&lt;br&gt; &lt;br&gt; YAMLの特徴を以下に示す。&lt;br&gt; * 可読性が高い *: インデントを使用して構造を表現するため、人間が読みやすい形式である。 * 豊富なデータ型 *: 文字…」</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=Qt%E3%81%AE%E5%9F%BA%E7%A4%8E_-_YAML&amp;diff=10630&amp;oldid=prev"/>
		<updated>2024-08-20T06:38:27Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「== 概要 == YAML (YAML Ain&amp;#039;t Markup Language) は、人間にとって読み書きしやすいデータシリアライゼーション形式である。&amp;lt;br&amp;gt; 設定ファイル、データ交換、データ保存等、様々な用途で使用されている。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; YAMLの特徴を以下に示す。&amp;lt;br&amp;gt; * 可読性が高い *: インデントを使用して構造を表現するため、人間が読みやすい形式である。 * 豊富なデータ型 *: 文字…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 概要 ==&lt;br /&gt;
YAML (YAML Ain&amp;#039;t Markup Language) は、人間にとって読み書きしやすいデータシリアライゼーション形式である。&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイル、データ交換、データ保存等、様々な用途で使用されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
YAMLの特徴を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 可読性が高い&lt;br /&gt;
*: インデントを使用して構造を表現するため、人間が読みやすい形式である。&lt;br /&gt;
* 豊富なデータ型&lt;br /&gt;
*: 文字列、数値、ブール値、リスト、マップ (辞書) 等の基本的なデータ型をサポートしている。&lt;br /&gt;
* 柔軟性&lt;br /&gt;
*: 複雑なデータ構造も表現できる。&lt;br /&gt;
* コメントのサポート&lt;br /&gt;
*: &amp;lt;u&amp;gt;#&amp;lt;/u&amp;gt;を使用して、コメントを記述することができる。&lt;br /&gt;
* 参照と別名&lt;br /&gt;
*: データの再利用や循環参照が可能である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
YAMLの使用するメリットを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 設定ファイルに適している&lt;br /&gt;
*: 人間が読み書きしやすいため、アプリケーションの設定ファイルとしてよく使用されている。&lt;br /&gt;
* データ交換に適している&lt;br /&gt;
*: JSONの代替として使用でき、より読みやすい形式でデータを表現できる。&lt;br /&gt;
* 柔軟性が高い&lt;br /&gt;
*: 複雑なデータ構造も簡単に表現できる。&lt;br /&gt;
* 多くの言語でサポートされている&lt;br /&gt;
*: 多くのプログラミング言語にYAMLパーサーが存在する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
YAMLは、可読性の高さと柔軟性から、多くの開発者に好まれている。&amp;lt;br&amp;gt;&lt;br /&gt;
特に、設定ファイルやデータ交換の用途で広く使用されており、多くのモダンなアプリケーションやフレームワークでYAMLが採用されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* インデントが重要&lt;br /&gt;
*: スペースを使用してインデントを行い、一貫性を保つ必要がある。&lt;br /&gt;
* コロンの後にはスペースが必要&lt;br /&gt;
*: &amp;quot;&amp;lt;キー&amp;gt;: &amp;lt;値&amp;gt;&amp;quot;のように、コロンの後にスペースを入れる必要がある。&lt;br /&gt;
* 文字列のクォート&lt;br /&gt;
*: 特殊文字を含む場合や曖昧さを避けたい場合は、文字列をクォートで囲むことができる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
QtにはYAML処理のための直接的なサポートが無いため、サードパーティのライブラリを使用する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
YAMLの処理によく使用されるライブラリの1つにyaml-cppライブラリが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== YAMLの基本的な構造 ==&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 # This is a comment&lt;br /&gt;
 ---  # Document start&lt;br /&gt;
 &lt;br /&gt;
 # スカラー値 (文字列, 数値, ブール値)&lt;br /&gt;
 name: John Doe&lt;br /&gt;
 age: 30&lt;br /&gt;
 is_student: false&lt;br /&gt;
 &lt;br /&gt;
 # リスト (ハイフンを使用)&lt;br /&gt;
 hobbies:&lt;br /&gt;
   - reading&lt;br /&gt;
   - traveling&lt;br /&gt;
   - photography&lt;br /&gt;
 &lt;br /&gt;
 # マッピング (キー: 値の形式)&lt;br /&gt;
 address:&lt;br /&gt;
   street: 123 Main St&lt;br /&gt;
   city: Anytown&lt;br /&gt;
   country: USA&lt;br /&gt;
 &lt;br /&gt;
 # 複雑なデータ構造 (リストとマッピングの組み合わせ)&lt;br /&gt;
 employees:&lt;br /&gt;
   - name: Alice&lt;br /&gt;
     position: Developer&lt;br /&gt;
     skills:&lt;br /&gt;
       - Python&lt;br /&gt;
       - JavaScript&lt;br /&gt;
   - name: Bob&lt;br /&gt;
     position: Designer&lt;br /&gt;
     skills:&lt;br /&gt;
       - Photoshop&lt;br /&gt;
       - Illustrator&lt;br /&gt;
 &lt;br /&gt;
 # 複数行の文字列&lt;br /&gt;
 description: &amp;gt;&lt;br /&gt;
   This is a long description&lt;br /&gt;
   that spans multiple lines.&lt;br /&gt;
   The &amp;gt; symbol preserves newlines&lt;br /&gt;
   but removes extra whitespace.&lt;br /&gt;
 &lt;br /&gt;
 # 複数行の文字列 (&amp;gt; と | を使用)&lt;br /&gt;
 code_sample: |&lt;br /&gt;
   def hello_world():&lt;br /&gt;
      print(&amp;quot;Hello, World!&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 # アンカー (&amp;quot;&amp;amp;&amp;quot;) と エイリアス (&amp;quot;*&amp;quot;) を使用したデータの再利用&lt;br /&gt;
 defaults: &amp;amp;defaults&lt;br /&gt;
   timeout: 30&lt;br /&gt;
   retries: 3&lt;br /&gt;
 &lt;br /&gt;
 production:&lt;br /&gt;
   &amp;lt;&amp;lt;: *defaults&lt;br /&gt;
   host: production.example.com&lt;br /&gt;
&lt;br /&gt;
 development:&lt;br /&gt;
   &amp;lt;&amp;lt;: *defaults&lt;br /&gt;
   host: dev.example.com&lt;br /&gt;
   timeout: 10  # デフォルト値のオーバーライド&lt;br /&gt;
 &lt;br /&gt;
 # Document end&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== yaml-cppライブラリ ==&lt;br /&gt;
==== yaml-cppライブラリとは ====&lt;br /&gt;
yaml-cppライブラリは、C++向けのYAMLパーサーおよびエミッタライブラリである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
yaml-cppライブラリを使用することにより、C++でYAMLファイルの読み込み、操作、書き込みが可能になる。&amp;lt;br&amp;gt;&lt;br /&gt;
また、設定ファイルの処理、データのシリアライズ / デシリアライズ、構造化データの操作等に広く使用されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
yaml-cppライブラリの特徴を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* C++ 11以降をサポート&lt;br /&gt;
*: モダンなC++の機能を活用している。&lt;br /&gt;
* ヘッダオンリーライブラリ&lt;br /&gt;
*: 使用する場合は、ヘッダファイルをインクルードするだけで済む。&lt;br /&gt;
* YAML 1.2仕様のサポート&lt;br /&gt;
*: 最新のYAML仕様に準拠している。&lt;br /&gt;
* 例外ベースのエラー処理&lt;br /&gt;
*: エラーが発生した場合は、適切な例外をスローする。&lt;br /&gt;
* STLとの統合&lt;br /&gt;
*: STLコンテナとの相互運用性が高い。&lt;br /&gt;
* ストリーミングAPI&lt;br /&gt;
*: 大きなファイルや継続的なデータストリームの処理に適している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== yaml-cppライブラリのライセンス ====&lt;br /&gt;
yaml-cppライブラリのライセンスは、MITライセンスに準拠している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== yaml-cppの主要なクラス ====&lt;br /&gt;
* YAML::Nodeクラス&lt;br /&gt;
*: YAMLデータを表現する基本的なクラスである。&lt;br /&gt;
*: スカラー、シーケンス、マップ等、あらゆる種類のYAMLノードを表現できる。&lt;br /&gt;
* YAML::Exceptionクラス&lt;br /&gt;
*: yaml-cppライブラリが投げる例外の基本クラスである。&lt;br /&gt;
*: パース時のエラーや型変換エラー等をキャッチできる。&lt;br /&gt;
* YAML::Emitterライブラリ&lt;br /&gt;
*: YAMLデータを生成するためのクラスである。&lt;br /&gt;
*: プログラム上において、YAMLを構築する時に使用する。&lt;br /&gt;
* YAML::Parserクラス&lt;br /&gt;
*: 低レベルのパーシング操作を行うためのクラスである。&lt;br /&gt;
*: 一般的には、&amp;lt;code&amp;gt;YAML::Load&amp;lt;/code&amp;gt;クラスや&amp;lt;code&amp;gt;YAML::LoadFile&amp;lt;/code&amp;gt;クラスを使用するため、直接使用することは少ない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* 型安全性&lt;br /&gt;
*: &amp;lt;code&amp;gt;YAML::Node&amp;lt;/code&amp;gt;クラスは、テンプレートベースの&amp;lt;code&amp;gt;.as&amp;lt;T&amp;gt;&amp;lt;/code&amp;gt;メソッドを提供するが、型が一致しない場合は例外がスローされる。&lt;br /&gt;
*: そのため、適切な型チェックを行うことが重要である。&lt;br /&gt;
* メモリ管理&lt;br /&gt;
*: &amp;lt;code&amp;gt;YAML::Node&amp;lt;/code&amp;gt;クラスのオブジェクトは参照カウント方式で管理されているため、通常はメモリリークを心配する必要は無い。&lt;br /&gt;
* パフォーマンス&lt;br /&gt;
*: 大規模なファイルを扱う場合、&amp;lt;code&amp;gt;YAML::LoadFile&amp;lt;/code&amp;gt;クラスはファイル全体をメモリに読み込むため、メモリ使用量が増大する可能性がある。&lt;br /&gt;
*: この場合、ストリーミングAPIの使用を検討すること。&lt;br /&gt;
* エラー処理&lt;br /&gt;
*: yaml-cppライブラリは例外を使用してエラーを報告する。&lt;br /&gt;
*: そのため、適切な&amp;lt;code&amp;gt;try-catch&amp;lt;/code&amp;gt;ブロックを使用して、エラーをハンドリングすることが重要である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== yaml-cppライブラリのインストール ====&lt;br /&gt;
===== パッケージ管理システムからインストール =====&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install yaml-cpp yaml-cpp-devel&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install yaml-cpp yaml-cpp-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== ソースコードからインストール =====&lt;br /&gt;
[https://github.com/jbeder/yaml-cpp yaml-cppライブラリのGithub]にアクセスして、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf yaml-cpp-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd yaml-cpp-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
yaml-cppライブラリをビルドおよびインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
 &lt;br /&gt;
 cmake -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
       -DCMAKE_INSTALL_PREFIX=&amp;lt;yaml-cppライブラリのインストールディレクトリ&amp;gt; \&lt;br /&gt;
       -DYAML_BUILD_SHARED_LIBS=ON \&lt;br /&gt;
       ..&lt;br /&gt;
 make -j $(nproc)&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ライブラリの指定 ==&lt;br /&gt;
==== Qtプロジェクトファイルを使用する場合 ====&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;make&amp;quot;&amp;gt;&lt;br /&gt;
 # Qtプロジェクトファイル&lt;br /&gt;
 &lt;br /&gt;
 # pkg-configを使用してyaml-cppライブラリを設定&lt;br /&gt;
 CONFIG += link_pkgconfig&lt;br /&gt;
 PKGCONFIG += yaml-cpp&lt;br /&gt;
 &lt;br /&gt;
 # pkg-configを使用しない場合&lt;br /&gt;
 LIBS += -lyaml-cpp&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CMakeLists.txtファイルを使用する場合 ====&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;cmake&amp;quot;&amp;gt;&lt;br /&gt;
 # CMakeLists.txtファイル&lt;br /&gt;
 &lt;br /&gt;
 # ...略&lt;br /&gt;
 &lt;br /&gt;
 find_package(PkgConfig REQUIRED)&lt;br /&gt;
 &lt;br /&gt;
 # yaml-cppライブラリの指定&lt;br /&gt;
 pkg_check_modules(YAML_CPP REQUIRED yaml-cpp)&lt;br /&gt;
 &lt;br /&gt;
 # インクルードディレクトリの指定&lt;br /&gt;
 target_include_directories(${PROJECT_NAME} PRIVATE&lt;br /&gt;
   # ...略&lt;br /&gt;
   ${YAML_CPP_INCLUDE_DIRS}&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 # ...略&lt;br /&gt;
 &lt;br /&gt;
 # ライブラリのリンク&lt;br /&gt;
 target_link_libraries(${PROJECT_NAME} PRIVATE&lt;br /&gt;
    # ...略&lt;br /&gt;
    ${YAML_CPP_LIBRARIES}&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 # コンパイルオプションの設定&lt;br /&gt;
 target_compile_options(${PROJECT_NAME} PRIVATE&lt;br /&gt;
    # ...略&lt;br /&gt;
   ${YAML_CPP_CFLAGS_OTHER}&lt;br /&gt;
 )&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== YAMLファイルの読み込み ==&lt;br /&gt;
以下の例では、指定したYAMLファイルを読み込み、その内容を表示している。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
 // main.cppファイル&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;QCoreApplication&amp;gt;&lt;br /&gt;
 #include &amp;lt;yaml-cpp/yaml.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 #include &amp;lt;QDebug&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 // YAMLファイルを読み込む関数&lt;br /&gt;
 YAML::Node readYamlFile(const QString&amp;amp; filePath)&lt;br /&gt;
 {&lt;br /&gt;
    try {&lt;br /&gt;
       return YAML::LoadFile(filePath.toStdString());&lt;br /&gt;
    }&lt;br /&gt;
    catch (const YAML::Exception&amp;amp; e) {&lt;br /&gt;
       qDebug() &amp;lt;&amp;lt; &amp;quot;YAMLファイルの読み込みに失敗: &amp;quot; &amp;lt;&amp;lt; e.what();&lt;br /&gt;
       return YAML::Node();&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // YAMLノードの内容を表示する関数 (再帰的)&lt;br /&gt;
 void printNode(const YAML::Node&amp;amp; node, int indent = 0)&lt;br /&gt;
 {&lt;br /&gt;
    QString indentStr = QString(&amp;quot; &amp;quot;).repeated(indent);&lt;br /&gt;
&lt;br /&gt;
    switch (node.Type()) {&lt;br /&gt;
    case YAML::NodeType::Scalar:&lt;br /&gt;
       qDebug().noquote() &amp;lt;&amp;lt; indentStr &amp;lt;&amp;lt; node.as&amp;lt;std::string&amp;gt;().c_str();&lt;br /&gt;
       break;&lt;br /&gt;
    case YAML::NodeType::Sequence:&lt;br /&gt;
       for (const auto&amp;amp; item : node) {&lt;br /&gt;
          printNode(item, indent + 2);&lt;br /&gt;
       }&lt;br /&gt;
       break;&lt;br /&gt;
    case YAML::NodeType::Map:&lt;br /&gt;
       for (const auto&amp;amp; it : node) {&lt;br /&gt;
          qDebug().noquote() &amp;lt;&amp;lt; indentStr &amp;lt;&amp;lt; it.first.as&amp;lt;std::string&amp;gt;().c_str() &amp;lt;&amp;lt; &amp;quot;:&amp;quot;;&lt;br /&gt;
          printNode(it.second, indent + 2);&lt;br /&gt;
       }&lt;br /&gt;
       break;&lt;br /&gt;
    default:&lt;br /&gt;
       qDebug().noquote() &amp;lt;&amp;lt; indentStr &amp;lt;&amp;lt; &amp;quot;不明なノードタイプ&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main(int argc, char *argv[])&lt;br /&gt;
 {&lt;br /&gt;
    QCoreApplication a(argc, argv);&lt;br /&gt;
 &lt;br /&gt;
    // YAMLファイルを読み込む&lt;br /&gt;
    QString inputFile = &amp;quot;sample.yaml&amp;quot;;&lt;br /&gt;
    YAML::Node config = readYamlFile(inputFile);&lt;br /&gt;
 &lt;br /&gt;
    if (config.IsNull()) {&lt;br /&gt;
       qDebug() &amp;lt;&amp;lt; &amp;quot;YAMLファイルの読み込みに失敗&amp;quot;;&lt;br /&gt;
       return -1;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    qDebug() &amp;lt;&amp;lt; &amp;quot;YAMLファイルの内容&amp;quot;;&lt;br /&gt;
    printNode(config);&lt;br /&gt;
 &lt;br /&gt;
    return a.exec();&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== YAMLファイルの書き込み ==&lt;br /&gt;
以下の例では、読み込んだYAMLファイルのデータを変更して、変更したデータを新しいYAMLファイルに書き込んでいる。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
 // main.cppファイル&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;QCoreApplication&amp;gt;&lt;br /&gt;
 #include &amp;lt;yaml-cpp/yaml.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fstream&amp;gt;&lt;br /&gt;
 #include &amp;lt;QDebug&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 // YAMLファイルを書き込む関数&lt;br /&gt;
 bool writeYamlFile(const QString&amp;amp; filePath, const YAML::Node&amp;amp; node)&lt;br /&gt;
 {&lt;br /&gt;
    try {&lt;br /&gt;
       std::ofstream fout(filePath.toStdString());&lt;br /&gt;
       fout &amp;lt;&amp;lt; node;&lt;br /&gt;
       return true;&lt;br /&gt;
    }&lt;br /&gt;
    catch (const YAML::Exception&amp;amp; e) {&lt;br /&gt;
       qDebug() &amp;lt;&amp;lt; &amp;quot;YAMLファイルの書き込みに失敗: &amp;quot; &amp;lt;&amp;lt; e.what();&lt;br /&gt;
       return false;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main(int argc, char *argv[])&lt;br /&gt;
 {&lt;br /&gt;
    QCoreApplication a(argc, argv);&lt;br /&gt;
 &lt;br /&gt;
    // 新しいYAMLノードを作成&lt;br /&gt;
    YAML::Node config;&lt;br /&gt;
    config[&amp;quot;name&amp;quot;] = &amp;quot;John Doe&amp;quot;;&lt;br /&gt;
    config[&amp;quot;age&amp;quot;] = 30;&lt;br /&gt;
    config[&amp;quot;city&amp;quot;] = &amp;quot;New York&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    YAML::Node hobbies;&lt;br /&gt;
    hobbies.push_back(&amp;quot;reading&amp;quot;);&lt;br /&gt;
    hobbies.push_back(&amp;quot;traveling&amp;quot;);&lt;br /&gt;
    hobbies.push_back(&amp;quot;photography&amp;quot;);&lt;br /&gt;
    config[&amp;quot;hobbies&amp;quot;] = hobbies;&lt;br /&gt;
 &lt;br /&gt;
    config[&amp;quot;job&amp;quot;][&amp;quot;title&amp;quot;] = &amp;quot;Software Engineer&amp;quot;;&lt;br /&gt;
    config[&amp;quot;job&amp;quot;][&amp;quot;company&amp;quot;] = &amp;quot;Tech Corp&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // データをYAMLファイルに書き込む&lt;br /&gt;
    QString outputFile = &amp;quot;sample2.yaml&amp;quot;;&lt;br /&gt;
    if (writeYamlFile(outputFile, config)) {&lt;br /&gt;
       qDebug() &amp;lt;&amp;lt; &amp;quot;YAMLファイルの書き込みに成功: &amp;quot; &amp;lt;&amp;lt; outputFile;&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
       qDebug() &amp;lt;&amp;lt; &amp;quot;YAMLファイルの書き込みに失敗&amp;quot;;&lt;br /&gt;
       return -1;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return a.exec();&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
yaml-cppライブラリの詳細な使用方法は、[https://github.com/jbeder/yaml-cpp/wiki/Tutorial 公式ドキュメント]を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
YAMLを出力するモデルは、&amp;lt;code&amp;gt;std::ostream&amp;lt;/code&amp;gt;マニピュレータである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;YAML::Emitter&amp;lt;/code&amp;gt;クラスのオブジェクトは出力ストリームとして動作して、その出力は&amp;lt;code&amp;gt;c_str&amp;lt;/code&amp;gt;メソッドで取得できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;YAML::Emitter&amp;lt;/code&amp;gt;クラスの詳細な使用方法は、[https://github.com/jbeder/yaml-cpp/wiki/How-To-Emit-YAML 公式ドキュメント]を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Qt]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
</feed>