Note that there are some explanatory texts on larger screens.

plurals
  1. POTrouble in getting to content within brackets
    primarykey
    data
    text
    <p>monsters.yaml</p> <pre><code>- name: Ogre position: [0, 5, 0] powers: - name: Club damage: 10 - name: Fist damage: 8 - name: Dragon position: [1, 0, 10] powers: - name: Fire Breath damage: 25 - name: Claws damage: 15 - name: Wizard position: [5, -3, 0] powers: - name: Acid Rain damage: 50 - name: Staff damage: 3 </code></pre> <p>main.cpp</p> <pre><code>#include "yaml-cpp/yaml.h" #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;vector&gt; // our data types struct Vec3 { float x, y, z; }; struct Power { std::string name; int damage; }; struct Monster { std::string name; Vec3 position; std::vector &lt;Power&gt; powers; }; // now the extraction operators for these types void operator &gt;&gt; (const YAML::Node&amp; node, Vec3&amp; v) { node[0] &gt;&gt; v.x; node[1] &gt;&gt; v.y; node[2] &gt;&gt; v.z; } void operator &gt;&gt; (const YAML::Node&amp; node, Power&amp; power) { node["name"] &gt;&gt; power.name; node["damage"] &gt;&gt; power.damage; } void operator &gt;&gt; (const YAML::Node&amp; node, Monster&amp; monster) { node["name"] &gt;&gt; monster.name; node["position"] &gt;&gt; monster.position; const YAML::Node&amp; powers = node["powers"]; for(unsigned i=0;i&lt;powers.size();i++) { Power power; powers[i] &gt;&gt; power; monster.powers.push_back(power); } } int main() { std::ifstream fin("monsters.yaml"); YAML::Parser parser(fin); YAML::Node doc; parser.GetNextDocument(doc); for(unsigned i=0;i&lt;doc.size();i++) { Vec3 v; doc[i] &gt;&gt; v; std::cout &lt;&lt; v.x &lt;&lt; "\n"; std::cout &lt;&lt; v.y &lt;&lt; "\n"; std::cout &lt;&lt; v.z &lt;&lt; "\n"; } return 0; } </code></pre> <p>I thought that, if I modify code analogously, the content of Vec3 will be couted, but it doesn't. What am I doing wrong?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload