<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.14.0" xml:lang="en-US">
  <compounddef id="argagg_8hpp" kind="file" language="C++">
    <compoundname>argagg.hpp</compoundname>
    <includes local="no">algorithm</includes>
    <includes local="no">array</includes>
    <includes local="no">cctype</includes>
    <includes local="no">cstdlib</includes>
    <includes local="no">cstring</includes>
    <includes local="no">iterator</includes>
    <includes local="no">ostream</includes>
    <includes local="no">sstream</includes>
    <includes local="no">stdexcept</includes>
    <includes local="no">string</includes>
    <includes local="no">unordered_map</includes>
    <includes local="no">utility</includes>
    <includes local="no">vector</includes>
    <includedby refid="csv_8hpp" local="yes">/tmp/pkg/src/argagg-0.4.7/include/argagg/convert/csv.hpp</includedby>
    <includedby refid="opencv_8hpp" local="yes">/tmp/pkg/src/argagg-0.4.7/include/argagg/convert/opencv.hpp</includedby>
    <incdepgraph>
      <node id="1">
        <label>/tmp/pkg/src/argagg-0.4.7/include/argagg/argagg.hpp</label>
        <link refid="argagg_8hpp"/>
        <childnode refid="2" relation="include">
        </childnode>
        <childnode refid="3" relation="include">
        </childnode>
        <childnode refid="4" relation="include">
        </childnode>
        <childnode refid="5" relation="include">
        </childnode>
        <childnode refid="6" relation="include">
        </childnode>
        <childnode refid="7" relation="include">
        </childnode>
        <childnode refid="8" relation="include">
        </childnode>
        <childnode refid="9" relation="include">
        </childnode>
        <childnode refid="10" relation="include">
        </childnode>
        <childnode refid="11" relation="include">
        </childnode>
        <childnode refid="12" relation="include">
        </childnode>
        <childnode refid="13" relation="include">
        </childnode>
        <childnode refid="14" relation="include">
        </childnode>
      </node>
      <node id="2">
        <label>algorithm</label>
      </node>
      <node id="3">
        <label>array</label>
      </node>
      <node id="4">
        <label>cctype</label>
      </node>
      <node id="5">
        <label>cstdlib</label>
      </node>
      <node id="6">
        <label>cstring</label>
      </node>
      <node id="7">
        <label>iterator</label>
      </node>
      <node id="8">
        <label>ostream</label>
      </node>
      <node id="9">
        <label>sstream</label>
      </node>
      <node id="10">
        <label>stdexcept</label>
      </node>
      <node id="11">
        <label>string</label>
      </node>
      <node id="12">
        <label>unordered_map</label>
      </node>
      <node id="13">
        <label>utility</label>
      </node>
      <node id="14">
        <label>vector</label>
      </node>
    </incdepgraph>
    <invincdepgraph>
      <node id="1">
        <label>/tmp/pkg/src/argagg-0.4.7/include/argagg/argagg.hpp</label>
        <link refid="argagg_8hpp"/>
        <childnode refid="2" relation="include">
        </childnode>
        <childnode refid="3" relation="include">
        </childnode>
      </node>
      <node id="2">
        <label>/tmp/pkg/src/argagg-0.4.7/include/argagg/convert/csv.hpp</label>
        <link refid="csv_8hpp"/>
      </node>
      <node id="3">
        <label>/tmp/pkg/src/argagg-0.4.7/include/argagg/convert/opencv.hpp</label>
        <link refid="opencv_8hpp"/>
      </node>
    </invincdepgraph>
    <innerclass refid="structargagg_1_1unexpected__argument__error" prot="public">argagg::unexpected_argument_error</innerclass>
    <innerclass refid="structargagg_1_1unexpected__option__error" prot="public">argagg::unexpected_option_error</innerclass>
    <innerclass refid="structargagg_1_1option__lacks__argument__error" prot="public">argagg::option_lacks_argument_error</innerclass>
    <innerclass refid="structargagg_1_1invalid__flag" prot="public">argagg::invalid_flag</innerclass>
    <innerclass refid="structargagg_1_1unknown__option" prot="public">argagg::unknown_option</innerclass>
    <innerclass refid="structargagg_1_1convert_1_1converter" prot="public">argagg::convert::converter</innerclass>
    <innerclass refid="structargagg_1_1option__result" prot="public">argagg::option_result</innerclass>
    <innerclass refid="structargagg_1_1option__results" prot="public">argagg::option_results</innerclass>
    <innerclass refid="structargagg_1_1parser__results" prot="public">argagg::parser_results</innerclass>
    <innerclass refid="structargagg_1_1definition" prot="public">argagg::definition</innerclass>
    <innerclass refid="structargagg_1_1parser__map" prot="public">argagg::parser_map</innerclass>
    <innerclass refid="structargagg_1_1parser" prot="public">argagg::parser</innerclass>
    <innerclass refid="structargagg_1_1fmt__ostream" prot="public">argagg::fmt_ostream</innerclass>
    <innernamespace refid="namespaceargagg">argagg</innernamespace>
    <innernamespace refid="namespaceargagg_1_1convert">argagg::convert</innernamespace>
    <sectiondef kind="define">
      <memberdef kind="define" id="argagg_8hpp_1a6aeab23c950ffcf60c4b9da9bc1d13f0" prot="public" static="no">
        <name>ARGAGG_ARGAGG_ARGAGG_HPP</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/tmp/pkg/src/argagg-0.4.7/include/argagg/argagg.hpp" line="32" column="9" bodyfile="/tmp/pkg/src/argagg-0.4.7/include/argagg/argagg.hpp" bodystart="32" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="argagg_8hpp_1a504e64d4a54babb408ff3b999f6e2185" prot="public" static="no">
        <name>DEFINE_CONVERSION_FROM_LONG_</name>
        <param><defname>TYPE</defname></param>
        <initializer>  template &lt;&gt; inline \
  TYPE arg(const char* arg) \
  { \
    return long_&lt;TYPE&gt;(arg); \
  }</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/tmp/pkg/src/argagg-0.4.7/include/argagg/argagg.hpp" line="1454" column="9" bodyfile="/tmp/pkg/src/argagg-0.4.7/include/argagg/argagg.hpp" bodystart="1454" bodyend="1459"/>
      </memberdef>
      <memberdef kind="define" id="argagg_8hpp_1a0191d1a4f98481f2ae008b7cf1df0335" prot="public" static="no">
        <name>DEFINE_CONVERSION_FROM_LONG_LONG_</name>
        <param><defname>TYPE</defname></param>
        <initializer>  template &lt;&gt; inline \
  TYPE arg(const char* arg) \
  { \
    return long_long_&lt;TYPE&gt;(arg); \
  }</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/tmp/pkg/src/argagg-0.4.7/include/argagg/argagg.hpp" line="1474" column="9" bodyfile="/tmp/pkg/src/argagg-0.4.7/include/argagg/argagg.hpp" bodystart="1474" bodyend="1479"/>
      </memberdef>
    </sectiondef>
    <sectiondef kind="func">
      <memberdef kind="function" id="argagg_8hpp_1ab740a1ddcecc92f1ab7da23151b5f561" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type><ref refid="cpp/io/basic_ostream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostream</ref> &amp;</type>
        <definition>std::ostream &amp; operator&lt;&lt;</definition>
        <argsstring>(std::ostream &amp;os, const argagg::parser &amp;x)</argsstring>
        <name>operator&lt;&lt;</name>
        <param>
          <type><ref refid="cpp/io/basic_ostream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostream</ref> &amp;</type>
          <declname>os</declname>
        </param>
        <param>
          <type>const <ref refid="structargagg_1_1parser" kindref="compound">argagg::parser</ref> &amp;</type>
          <declname>x</declname>
        </param>
        <briefdescription>
<para>Writes the option help to the given stream. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/tmp/pkg/src/argagg-0.4.7/include/argagg/argagg.hpp" line="1692" column="1" bodyfile="/tmp/pkg/src/argagg-0.4.7/include/argagg/argagg.hpp" bodystart="1692" bodyend="1705" declfile="/tmp/pkg/src/argagg-0.4.7/include/argagg/argagg.hpp" declline="726" declcolumn="1"/>
        <references refid="structargagg_1_1parser_1a4f434651f34fad5c205c0159c24f7573" compoundref="argagg_8hpp" startline="643">argagg::parser::definitions</references>
      </memberdef>
    </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <programlisting>
<codeline lineno="1"><highlight class="comment">/*</highlight></codeline>
<codeline lineno="2"><highlight class="comment"><sp/>*<sp/>@file</highlight></codeline>
<codeline lineno="3"><highlight class="comment"><sp/>*<sp/>@brief</highlight></codeline>
<codeline lineno="4"><highlight class="comment"><sp/>*<sp/>Defines<sp/>a<sp/>very<sp/>simple<sp/>command<sp/>line<sp/>argument<sp/>parser.</highlight></codeline>
<codeline lineno="5"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="6"><highlight class="comment"><sp/>*<sp/>@copyright</highlight></codeline>
<codeline lineno="7"><highlight class="comment"><sp/>*<sp/>Copyright<sp/>(c)<sp/>2018<sp/>Viet<sp/>The<sp/>Nguyen</highlight></codeline>
<codeline lineno="8"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="9"><highlight class="comment"><sp/>*<sp/>@copyright</highlight></codeline>
<codeline lineno="10"><highlight class="comment"><sp/>*<sp/>Permission<sp/>is<sp/>hereby<sp/>granted,<sp/>free<sp/>of<sp/>charge,<sp/>to<sp/>any<sp/>person<sp/>obtaining<sp/>a<sp/>copy</highlight></codeline>
<codeline lineno="11"><highlight class="comment"><sp/>*<sp/>of<sp/>this<sp/>software<sp/>and<sp/>associated<sp/>documentation<sp/>files<sp/>(the<sp/>&quot;Software&quot;),<sp/>to</highlight></codeline>
<codeline lineno="12"><highlight class="comment"><sp/>*<sp/>deal<sp/>in<sp/>the<sp/>Software<sp/>without<sp/>restriction,<sp/>including<sp/>without<sp/>limitation<sp/>the</highlight></codeline>
<codeline lineno="13"><highlight class="comment"><sp/>*<sp/>rights<sp/>to<sp/>use,<sp/>copy,<sp/>modify,<sp/>merge,<sp/>publish,<sp/>distribute,<sp/>sublicense,<sp/>and/or</highlight></codeline>
<codeline lineno="14"><highlight class="comment"><sp/>*<sp/>sell<sp/>copies<sp/>of<sp/>the<sp/>Software,<sp/>and<sp/>to<sp/>permit<sp/>persons<sp/>to<sp/>whom<sp/>the<sp/>Software<sp/>is</highlight></codeline>
<codeline lineno="15"><highlight class="comment"><sp/>*<sp/>furnished<sp/>to<sp/>do<sp/>so,<sp/>subject<sp/>to<sp/>the<sp/>following<sp/>conditions:</highlight></codeline>
<codeline lineno="16"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="17"><highlight class="comment"><sp/>*<sp/>@copyright</highlight></codeline>
<codeline lineno="18"><highlight class="comment"><sp/>*<sp/>The<sp/>above<sp/>copyright<sp/>notice<sp/>and<sp/>this<sp/>permission<sp/>notice<sp/>shall<sp/>be<sp/>included<sp/>in</highlight></codeline>
<codeline lineno="19"><highlight class="comment"><sp/>*<sp/>all<sp/>copies<sp/>or<sp/>substantial<sp/>portions<sp/>of<sp/>the<sp/>Software.</highlight></codeline>
<codeline lineno="20"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="21"><highlight class="comment"><sp/>*<sp/>@copyright</highlight></codeline>
<codeline lineno="22"><highlight class="comment"><sp/>*<sp/>THE<sp/>SOFTWARE<sp/>IS<sp/>PROVIDED<sp/>&quot;AS<sp/>IS&quot;,<sp/>WITHOUT<sp/>WARRANTY<sp/>OF<sp/>ANY<sp/>KIND,<sp/>EXPRESS<sp/>OR</highlight></codeline>
<codeline lineno="23"><highlight class="comment"><sp/>*<sp/>IMPLIED,<sp/>INCLUDING<sp/>BUT<sp/>NOT<sp/>LIMITED<sp/>TO<sp/>THE<sp/>WARRANTIES<sp/>OF<sp/>MERCHANTABILITY,</highlight></codeline>
<codeline lineno="24"><highlight class="comment"><sp/>*<sp/>FITNESS<sp/>FOR<sp/>A<sp/>PARTICULAR<sp/>PURPOSE<sp/>AND<sp/>NONINFRINGEMENT.<sp/>IN<sp/>NO<sp/>EVENT<sp/>SHALL<sp/>THE</highlight></codeline>
<codeline lineno="25"><highlight class="comment"><sp/>*<sp/>AUTHORS<sp/>OR<sp/>COPYRIGHT<sp/>HOLDERS<sp/>BE<sp/>LIABLE<sp/>FOR<sp/>ANY<sp/>CLAIM,<sp/>DAMAGES<sp/>OR<sp/>OTHER</highlight></codeline>
<codeline lineno="26"><highlight class="comment"><sp/>*<sp/>LIABILITY,<sp/>WHETHER<sp/>IN<sp/>AN<sp/>ACTION<sp/>OF<sp/>CONTRACT,<sp/>TORT<sp/>OR<sp/>OTHERWISE,<sp/>ARISING</highlight></codeline>
<codeline lineno="27"><highlight class="comment"><sp/>*<sp/>FROM,<sp/>OUT<sp/>OF<sp/>OR<sp/>IN<sp/>CONNECTION<sp/>WITH<sp/>THE<sp/>SOFTWARE<sp/>OR<sp/>THE<sp/>USE<sp/>OR<sp/>OTHER<sp/>DEALINGS</highlight></codeline>
<codeline lineno="28"><highlight class="comment"><sp/>*<sp/>IN<sp/>THE<sp/>SOFTWARE.</highlight></codeline>
<codeline lineno="29"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="30"><highlight class="normal"></highlight><highlight class="preprocessor">#pragma<sp/>once</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="31"><highlight class="normal"></highlight><highlight class="preprocessor">#ifndef<sp/>ARGAGG_ARGAGG_ARGAGG_HPP</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="32" refid="argagg_8hpp_1a6aeab23c950ffcf60c4b9da9bc1d13f0" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>ARGAGG_ARGAGG_ARGAGG_HPP</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="33"><highlight class="normal"></highlight></codeline>
<codeline lineno="34"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;algorithm&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="35"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;array&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="36"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;cctype&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="37"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;cstdlib&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="38"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;cstring&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="39"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;iterator&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="40"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;ostream&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="41"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;sstream&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="42"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdexcept&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="43"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;string&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="44"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;unordered_map&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="45"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;utility&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="46"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;vector&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="47"><highlight class="normal"></highlight></codeline>
<codeline lineno="48"><highlight class="normal"></highlight></codeline>
<codeline lineno="96" refid="namespaceargagg" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceargagg" kindref="compound">argagg</ref><sp/>{</highlight></codeline>
<codeline lineno="97"><highlight class="normal"></highlight></codeline>
<codeline lineno="98"><highlight class="normal"></highlight></codeline>
<codeline lineno="104" refid="structargagg_1_1unexpected__argument__error" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structargagg_1_1unexpected__argument__error" kindref="compound">unexpected_argument_error</ref></highlight></codeline>
<codeline lineno="105"><highlight class="normal">:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="cpp/error/runtime_error" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::runtime_error</ref><sp/>{</highlight></codeline>
<codeline lineno="106"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="cpp/error/runtime_error" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::runtime_error::runtime_error</ref>;</highlight></codeline>
<codeline lineno="107"><highlight class="normal">};</highlight></codeline>
<codeline lineno="108"><highlight class="normal"></highlight></codeline>
<codeline lineno="109"><highlight class="normal"></highlight></codeline>
<codeline lineno="116" refid="structargagg_1_1unexpected__option__error" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structargagg_1_1unexpected__option__error" kindref="compound">unexpected_option_error</ref></highlight></codeline>
<codeline lineno="117"><highlight class="normal">:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="cpp/error/runtime_error" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::runtime_error</ref><sp/>{</highlight></codeline>
<codeline lineno="118"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="cpp/error/runtime_error" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::runtime_error::runtime_error</ref>;</highlight></codeline>
<codeline lineno="119"><highlight class="normal">};</highlight></codeline>
<codeline lineno="120"><highlight class="normal"></highlight></codeline>
<codeline lineno="121"><highlight class="normal"></highlight></codeline>
<codeline lineno="128" refid="structargagg_1_1option__lacks__argument__error" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structargagg_1_1option__lacks__argument__error" kindref="compound">option_lacks_argument_error</ref></highlight></codeline>
<codeline lineno="129"><highlight class="normal">:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="cpp/error/runtime_error" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::runtime_error</ref><sp/>{</highlight></codeline>
<codeline lineno="130"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="cpp/error/runtime_error" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::runtime_error::runtime_error</ref>;</highlight></codeline>
<codeline lineno="131"><highlight class="normal">};</highlight></codeline>
<codeline lineno="132"><highlight class="normal"></highlight></codeline>
<codeline lineno="133"><highlight class="normal"></highlight></codeline>
<codeline lineno="141" refid="structargagg_1_1invalid__flag" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structargagg_1_1invalid__flag" kindref="compound">invalid_flag</ref></highlight></codeline>
<codeline lineno="142"><highlight class="normal">:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="cpp/error/runtime_error" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::runtime_error</ref><sp/>{</highlight></codeline>
<codeline lineno="143"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="cpp/error/runtime_error" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::runtime_error::runtime_error</ref>;</highlight></codeline>
<codeline lineno="144"><highlight class="normal">};</highlight></codeline>
<codeline lineno="145"><highlight class="normal"></highlight></codeline>
<codeline lineno="146"><highlight class="normal"></highlight></codeline>
<codeline lineno="152" refid="structargagg_1_1unknown__option" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structargagg_1_1unknown__option" kindref="compound">unknown_option</ref></highlight></codeline>
<codeline lineno="153"><highlight class="normal">:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="cpp/error/runtime_error" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::runtime_error</ref><sp/>{</highlight></codeline>
<codeline lineno="154"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="cpp/error/runtime_error" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::runtime_error::runtime_error</ref>;</highlight></codeline>
<codeline lineno="155"><highlight class="normal">};</highlight></codeline>
<codeline lineno="156"><highlight class="normal"></highlight></codeline>
<codeline lineno="157"><highlight class="normal"></highlight></codeline>
<codeline lineno="164" refid="namespaceargagg_1_1convert" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceargagg_1_1convert" kindref="compound">convert</ref><sp/>{</highlight></codeline>
<codeline lineno="165"><highlight class="normal"></highlight></codeline>
<codeline lineno="171"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="172"><highlight class="normal"><sp/><sp/>T<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>);</highlight></codeline>
<codeline lineno="173"><highlight class="normal"></highlight></codeline>
<codeline lineno="185"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="186" refid="structargagg_1_1convert_1_1converter" refkind="compound"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structargagg_1_1convert_1_1converter" kindref="compound">converter</ref><sp/>{</highlight></codeline>
<codeline lineno="187" refid="structargagg_1_1convert_1_1converter_1a9ae0fc72243699c930acdb3a12fcb550" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/>T<sp/><ref refid="structargagg_1_1convert_1_1converter_1a9ae0fc72243699c930acdb3a12fcb550" kindref="member">convert</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>);</highlight></codeline>
<codeline lineno="188"><highlight class="normal"><sp/><sp/>};</highlight></codeline>
<codeline lineno="189"><highlight class="normal"></highlight></codeline>
<codeline lineno="248"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="249"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="namespaceargagg_1_1convert_1a2624aa278ddbcde5062f46f3f7d51401" kindref="member">parse_next_component</ref>(</highlight></codeline>
<codeline lineno="250"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*&amp;<sp/>s,</highlight></codeline>
<codeline lineno="251"><highlight class="normal"><sp/><sp/><sp/><sp/>T&amp;<sp/>out_arg,</highlight></codeline>
<codeline lineno="252"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>delim<sp/>=<sp/></highlight><highlight class="charliteral">&apos;,&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="253"><highlight class="normal"></highlight></codeline>
<codeline lineno="254"><highlight class="normal">}</highlight></codeline>
<codeline lineno="255"><highlight class="normal"></highlight></codeline>
<codeline lineno="256"><highlight class="normal"></highlight></codeline>
<codeline lineno="264" refid="structargagg_1_1option__result" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structargagg_1_1option__result" kindref="compound">option_result</ref><sp/>{</highlight></codeline>
<codeline lineno="265"><highlight class="normal"></highlight></codeline>
<codeline lineno="271" refid="structargagg_1_1option__result_1a10cf3c02b1c5e5d57f6b9f41b622da46" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/><ref refid="structargagg_1_1option__result_1a10cf3c02b1c5e5d57f6b9f41b622da46" kindref="member">arg</ref>;</highlight></codeline>
<codeline lineno="272"><highlight class="normal"></highlight></codeline>
<codeline lineno="282"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="283"><highlight class="normal"><sp/><sp/>T<sp/><ref refid="structargagg_1_1option__result_1acad0ebe8b52f37b25c6955b406ff809f" kindref="member">as</ref>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="284"><highlight class="normal"></highlight></codeline>
<codeline lineno="294"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="295"><highlight class="normal"><sp/><sp/>T<sp/><ref refid="structargagg_1_1option__result_1acad0ebe8b52f37b25c6955b406ff809f" kindref="member">as</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>t)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="296"><highlight class="normal"></highlight></codeline>
<codeline lineno="309"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="310"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">operator</highlight><highlight class="normal"><sp/>T<sp/>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="311"><highlight class="normal"></highlight></codeline>
<codeline lineno="317"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1option__result_1a22f5e91d36266275de14db491b917544" kindref="member">operator ! </ref>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="318"><highlight class="normal"></highlight></codeline>
<codeline lineno="319"><highlight class="normal">};</highlight></codeline>
<codeline lineno="320"><highlight class="normal"></highlight></codeline>
<codeline lineno="321"><highlight class="normal"></highlight></codeline>
<codeline lineno="332" refid="structargagg_1_1option__results" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structargagg_1_1option__results" kindref="compound">option_results</ref><sp/>{</highlight></codeline>
<codeline lineno="333"><highlight class="normal"></highlight></codeline>
<codeline lineno="338" refid="structargagg_1_1option__results_1a5371fd527139e2a0c9036c8230f4dc9c" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="cpp/container/vector" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::vector&lt;option_result&gt;</ref><sp/><ref refid="structargagg_1_1option__results_1a5371fd527139e2a0c9036c8230f4dc9c" kindref="member">all</ref>;</highlight></codeline>
<codeline lineno="339"><highlight class="normal"></highlight></codeline>
<codeline lineno="344"><highlight class="normal"><sp/><sp/><ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/><ref refid="structargagg_1_1option__results_1a1a8097d49a40ed772b64e99abbf188a6" kindref="member">count</ref>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="345"><highlight class="normal"></highlight></codeline>
<codeline lineno="350"><highlight class="normal"><sp/><sp/><ref refid="structargagg_1_1option__result" kindref="compound">option_result</ref>&amp;<sp/><ref refid="structargagg_1_1option__results_1a3baaa4525cbc4c39aaf4841c93059336" kindref="member">operator [] </ref>(<ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/>index);</highlight></codeline>
<codeline lineno="351"><highlight class="normal"></highlight></codeline>
<codeline lineno="356"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1option__result" kindref="compound">option_result</ref>&amp;<sp/><ref refid="structargagg_1_1option__results_1a3baaa4525cbc4c39aaf4841c93059336" kindref="member">operator [] </ref>(<ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/>index)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="357"><highlight class="normal"></highlight></codeline>
<codeline lineno="367"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="368"><highlight class="normal"><sp/><sp/>T<sp/><ref refid="structargagg_1_1option__results_1a9a51160f3a6d84e162e5ec909a2ed44a" kindref="member">as</ref>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="369"><highlight class="normal"></highlight></codeline>
<codeline lineno="378"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="379"><highlight class="normal"><sp/><sp/>T<sp/><ref refid="structargagg_1_1option__results_1a9a51160f3a6d84e162e5ec909a2ed44a" kindref="member">as</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>t)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="380"><highlight class="normal"></highlight></codeline>
<codeline lineno="393"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="394"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">operator</highlight><highlight class="normal"><sp/>T<sp/>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="395"><highlight class="normal"></highlight></codeline>
<codeline lineno="401"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1option__results_1ae6ec9aa96c21218ce4c2aace633055de" kindref="member">operator ! </ref>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="402"><highlight class="normal"></highlight></codeline>
<codeline lineno="403"><highlight class="normal">};</highlight></codeline>
<codeline lineno="404"><highlight class="normal"></highlight></codeline>
<codeline lineno="405"><highlight class="normal"></highlight></codeline>
<codeline lineno="411" refid="structargagg_1_1parser__results" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structargagg_1_1parser__results" kindref="compound">parser_results</ref><sp/>{</highlight></codeline>
<codeline lineno="412"><highlight class="normal"></highlight></codeline>
<codeline lineno="418" refid="structargagg_1_1parser__results_1ae2b1ba795d5b85f2daf2dd554bc956b9" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/><ref refid="structargagg_1_1parser__results_1ae2b1ba795d5b85f2daf2dd554bc956b9" kindref="member">program</ref>;</highlight></codeline>
<codeline lineno="419"><highlight class="normal"></highlight></codeline>
<codeline lineno="425" refid="structargagg_1_1parser__results_1ae1aa657b375b7e4b5c918fa08ff402b7" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="cpp/container/unordered_map" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::unordered_map&lt;std::string, option_results&gt;</ref><sp/><ref refid="structargagg_1_1parser__results_1ae1aa657b375b7e4b5c918fa08ff402b7" kindref="member">options</ref>;</highlight></codeline>
<codeline lineno="426"><highlight class="normal"></highlight></codeline>
<codeline lineno="431" refid="structargagg_1_1parser__results_1a159b7d39369d6a3bc76bb484a109d6cc" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="cpp/container/vector" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::vector&lt;const char*&gt;</ref><sp/><ref refid="structargagg_1_1parser__results_1a159b7d39369d6a3bc76bb484a109d6cc" kindref="member">pos</ref>;</highlight></codeline>
<codeline lineno="432"><highlight class="normal"></highlight></codeline>
<codeline lineno="437"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1parser__results_1aa9ee92c458d2e79698db03e8aa350955" kindref="member">has_option</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>name)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="438"><highlight class="normal"></highlight></codeline>
<codeline lineno="445"><highlight class="normal"><sp/><sp/><ref refid="structargagg_1_1option__results" kindref="compound">option_results</ref>&amp;<sp/><ref refid="structargagg_1_1parser__results_1a4148c8c36d81d74fc80eada5072243eb" kindref="member">operator [] </ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>name);</highlight></codeline>
<codeline lineno="446"><highlight class="normal"></highlight></codeline>
<codeline lineno="453"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1option__results" kindref="compound">option_results</ref>&amp;<sp/><ref refid="structargagg_1_1parser__results_1a4148c8c36d81d74fc80eada5072243eb" kindref="member">operator [] </ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>name)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="454"><highlight class="normal"></highlight></codeline>
<codeline lineno="459"><highlight class="normal"><sp/><sp/><ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/><ref refid="structargagg_1_1parser__results_1a085294825b4a65e62b48a9d36f5b8854" kindref="member">count</ref>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="460"><highlight class="normal"></highlight></codeline>
<codeline lineno="465"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/><ref refid="structargagg_1_1parser__results_1a4148c8c36d81d74fc80eada5072243eb" kindref="member">operator [] </ref>(<ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/>index)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="466"><highlight class="normal"></highlight></codeline>
<codeline lineno="471"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="472"><highlight class="normal"><sp/><sp/>T<sp/><ref refid="structargagg_1_1parser__results_1aca0b15689e4ec5d296fe300d2a4705cc" kindref="member">as</ref>(<ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/>i<sp/>=<sp/>0)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="473"><highlight class="normal"></highlight></codeline>
<codeline lineno="478"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="479"><highlight class="normal"><sp/><sp/><ref refid="cpp/container/vector" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::vector&lt;T&gt;</ref><sp/><ref refid="structargagg_1_1parser__results_1a3ff0ea89f6a10dc05a77f77a6d457b2c" kindref="member">all_as</ref>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="480"><highlight class="normal"></highlight></codeline>
<codeline lineno="481"><highlight class="normal">};</highlight></codeline>
<codeline lineno="482"><highlight class="normal"></highlight></codeline>
<codeline lineno="483"><highlight class="normal"></highlight></codeline>
<codeline lineno="488" refid="structargagg_1_1definition" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structargagg_1_1definition" kindref="compound">definition</ref><sp/>{</highlight></codeline>
<codeline lineno="489"><highlight class="normal"></highlight></codeline>
<codeline lineno="494" refid="structargagg_1_1definition_1aa643462790e7ab53d6117c2379623fac" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref><sp/><ref refid="structargagg_1_1definition_1aa643462790e7ab53d6117c2379623fac" kindref="member">name</ref>;</highlight></codeline>
<codeline lineno="495"><highlight class="normal"></highlight></codeline>
<codeline lineno="501" refid="structargagg_1_1definition_1ab9adef6212afbede457ad8732dcc71af" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="cpp/container/vector" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::vector&lt;std::string&gt;</ref><sp/><ref refid="structargagg_1_1definition_1ab9adef6212afbede457ad8732dcc71af" kindref="member">flags</ref>;</highlight></codeline>
<codeline lineno="502"><highlight class="normal"></highlight></codeline>
<codeline lineno="507" refid="structargagg_1_1definition_1acfdfcfec4973adeb5da690b49447005c" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref><sp/><ref refid="structargagg_1_1definition_1acfdfcfec4973adeb5da690b49447005c" kindref="member">help</ref>;</highlight></codeline>
<codeline lineno="508"><highlight class="normal"></highlight></codeline>
<codeline lineno="515" refid="structargagg_1_1definition_1aea9f1067d6254e6d440777851791aedb" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1definition_1aea9f1067d6254e6d440777851791aedb" kindref="member">num_args</ref>;</highlight></codeline>
<codeline lineno="516"><highlight class="normal"></highlight></codeline>
<codeline lineno="521"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1definition_1a70e132e1f3f5afec475374b45e93b790" kindref="member">wants_no_arguments</ref>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="522"><highlight class="normal"></highlight></codeline>
<codeline lineno="527"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1definition_1a1c666fff3487eba0a76d5e2f1c119736" kindref="member">requires_arguments</ref>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="528"><highlight class="normal"></highlight></codeline>
<codeline lineno="529"><highlight class="normal">};</highlight></codeline>
<codeline lineno="530"><highlight class="normal"></highlight></codeline>
<codeline lineno="531"><highlight class="normal"></highlight></codeline>
<codeline lineno="539"><highlight class="normal"></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="namespaceargagg_1acb5531e41fdc903b94502fc13736d94a" kindref="member">cmd_line_arg_is_option_flag</ref>(</highlight></codeline>
<codeline lineno="540"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>s);</highlight></codeline>
<codeline lineno="541"><highlight class="normal"></highlight></codeline>
<codeline lineno="542"><highlight class="normal"></highlight></codeline>
<codeline lineno="548"><highlight class="normal"></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="namespaceargagg_1affa2ac4b0385ceafd6f97af921f7579e" kindref="member">is_valid_flag_definition</ref>(</highlight></codeline>
<codeline lineno="549"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>s);</highlight></codeline>
<codeline lineno="550"><highlight class="normal"></highlight></codeline>
<codeline lineno="551"><highlight class="normal"></highlight></codeline>
<codeline lineno="557"><highlight class="normal"></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="namespaceargagg_1abcf4845730ad824564affe95051a5b98" kindref="member">flag_is_short</ref>(</highlight></codeline>
<codeline lineno="558"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>s);</highlight></codeline>
<codeline lineno="559"><highlight class="normal"></highlight></codeline>
<codeline lineno="560"><highlight class="normal"></highlight></codeline>
<codeline lineno="572" refid="structargagg_1_1parser__map" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structargagg_1_1parser__map" kindref="compound">parser_map</ref><sp/>{</highlight></codeline>
<codeline lineno="573"><highlight class="normal"></highlight></codeline>
<codeline lineno="579" refid="structargagg_1_1parser__map_1af2ace0b7403a1302566719ea2b97baad" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="cpp/container/array" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::array&lt;const definition*, 256&gt;</ref><sp/><ref refid="structargagg_1_1parser__map_1af2ace0b7403a1302566719ea2b97baad" kindref="member">short_map</ref>;</highlight></codeline>
<codeline lineno="580"><highlight class="normal"></highlight></codeline>
<codeline lineno="586" refid="structargagg_1_1parser__map_1a5ed8cd6a5e57925359d33e9472773d49" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="cpp/container/unordered_map" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::unordered_map&lt;std::string, const definition*&gt;</ref><sp/><ref refid="structargagg_1_1parser__map_1a5ed8cd6a5e57925359d33e9472773d49" kindref="member">long_map</ref>;</highlight></codeline>
<codeline lineno="587"><highlight class="normal"></highlight></codeline>
<codeline lineno="592"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1parser__map_1a8701dda28757ea06a04fe1bed0a2eff6" kindref="member">known_short_flag</ref>(</highlight></codeline>
<codeline lineno="593"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>flag)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="594"><highlight class="normal"></highlight></codeline>
<codeline lineno="600"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1definition" kindref="compound">definition</ref>*<sp/><ref refid="structargagg_1_1parser__map_1aeb9d3cf8ea6009d010c18a6a57f7b738" kindref="member">get_definition_for_short_flag</ref>(</highlight></codeline>
<codeline lineno="601"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>flag)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="602"><highlight class="normal"></highlight></codeline>
<codeline lineno="607"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1parser__map_1ae1b75fceb05c89091696c0bdc1e5bd91" kindref="member">known_long_flag</ref>(</highlight></codeline>
<codeline lineno="608"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>flag)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="609"><highlight class="normal"></highlight></codeline>
<codeline lineno="615"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1definition" kindref="compound">definition</ref>*<sp/><ref refid="structargagg_1_1parser__map_1a1c933fca929439a558b6176b9b309b0b" kindref="member">get_definition_for_long_flag</ref>(</highlight></codeline>
<codeline lineno="616"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>flag)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="617"><highlight class="normal"></highlight></codeline>
<codeline lineno="618"><highlight class="normal">};</highlight></codeline>
<codeline lineno="619"><highlight class="normal"></highlight></codeline>
<codeline lineno="620"><highlight class="normal"></highlight></codeline>
<codeline lineno="628"><highlight class="normal"><ref refid="structargagg_1_1parser__map" kindref="compound">parser_map</ref><sp/><ref refid="namespaceargagg_1a7a7eacb2cf495cc33c08df68619fbf95" kindref="member">validate_definitions</ref>(</highlight></codeline>
<codeline lineno="629"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/container/vector" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::vector&lt;definition&gt;</ref>&amp;<sp/>definitions);</highlight></codeline>
<codeline lineno="630"><highlight class="normal"></highlight></codeline>
<codeline lineno="631"><highlight class="normal"></highlight></codeline>
<codeline lineno="636" refid="structargagg_1_1parser" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structargagg_1_1parser" kindref="compound">parser</ref><sp/>{</highlight></codeline>
<codeline lineno="637"><highlight class="normal"></highlight></codeline>
<codeline lineno="643" refid="structargagg_1_1parser_1a4f434651f34fad5c205c0159c24f7573" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="cpp/container/vector" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::vector&lt;definition&gt;</ref><sp/><ref refid="structargagg_1_1parser_1a4f434651f34fad5c205c0159c24f7573" kindref="member">definitions</ref>;</highlight></codeline>
<codeline lineno="644"><highlight class="normal"></highlight></codeline>
<codeline lineno="654"><highlight class="normal"><sp/><sp/><ref refid="structargagg_1_1parser__results" kindref="compound">parser_results</ref><sp/><ref refid="structargagg_1_1parser_1a4f85341056c6f30e02c58b0c9b33dedb" kindref="member">parse</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>argc,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">**<sp/>argv)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="655"><highlight class="normal"></highlight></codeline>
<codeline lineno="663"><highlight class="normal"><sp/><sp/><ref refid="structargagg_1_1parser__results" kindref="compound">parser_results</ref><sp/><ref refid="structargagg_1_1parser_1a4f85341056c6f30e02c58b0c9b33dedb" kindref="member">parse</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>argc,<sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">**<sp/>argv)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="664"><highlight class="normal"></highlight></codeline>
<codeline lineno="665"><highlight class="normal">};</highlight></codeline>
<codeline lineno="666"><highlight class="normal"></highlight></codeline>
<codeline lineno="667"><highlight class="normal"></highlight></codeline>
<codeline lineno="683" refid="structargagg_1_1fmt__ostream" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structargagg_1_1fmt__ostream_1ad726515e75c97baeab0db14ff82d2db5" kindref="member">fmt_ostream</ref><sp/>:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="cpp/io/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostringstream</ref><sp/>{</highlight></codeline>
<codeline lineno="684"><highlight class="normal"></highlight></codeline>
<codeline lineno="690" refid="structargagg_1_1fmt__ostream_1a1ce78b84202689cc34781b98eec1050b" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="cpp/io/basic_ostream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostream</ref>&amp;<sp/><ref refid="structargagg_1_1fmt__ostream_1a1ce78b84202689cc34781b98eec1050b" kindref="member">output</ref>;</highlight></codeline>
<codeline lineno="691"><highlight class="normal"></highlight></codeline>
<codeline lineno="697"><highlight class="normal"><sp/><sp/><ref refid="structargagg_1_1fmt__ostream_1ad726515e75c97baeab0db14ff82d2db5" kindref="member">fmt_ostream</ref>(<ref refid="cpp/io/basic_ostream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostream</ref>&amp;<sp/><ref refid="structargagg_1_1fmt__ostream_1a1ce78b84202689cc34781b98eec1050b" kindref="member">output</ref>);</highlight></codeline>
<codeline lineno="698"><highlight class="normal"></highlight></codeline>
<codeline lineno="705"><highlight class="normal"><sp/><sp/><ref refid="structargagg_1_1fmt__ostream_1a64eb8576f2a4fe32162f52dac354ad8c" kindref="member">~fmt_ostream</ref>();</highlight></codeline>
<codeline lineno="706"><highlight class="normal"></highlight></codeline>
<codeline lineno="707"><highlight class="normal">};</highlight></codeline>
<codeline lineno="708"><highlight class="normal"></highlight></codeline>
<codeline lineno="709"><highlight class="normal"></highlight></codeline>
<codeline lineno="716"><highlight class="normal"><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref><sp/><ref refid="namespaceargagg_1ae9d8a0de66b416e737bddcb36a9eddf0" kindref="member">fmt_string</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>s);</highlight></codeline>
<codeline lineno="717"><highlight class="normal"></highlight></codeline>
<codeline lineno="718"><highlight class="normal"></highlight></codeline>
<codeline lineno="719"><highlight class="normal">}<sp/></highlight><highlight class="comment">//<sp/>namespace<sp/>argagg</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="720"><highlight class="normal"></highlight></codeline>
<codeline lineno="721"><highlight class="normal"></highlight></codeline>
<codeline lineno="726"><highlight class="normal"><ref refid="cpp/io/basic_ostream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostream</ref>&amp;<sp/><ref refid="argagg_8hpp_1ab740a1ddcecc92f1ab7da23151b5f561" kindref="member">operator &lt;&lt; </ref>(<ref refid="cpp/io/basic_ostream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostream</ref>&amp;<sp/>os,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1parser" kindref="compound">argagg::parser</ref>&amp;<sp/>x);</highlight></codeline>
<codeline lineno="727"><highlight class="normal"></highlight></codeline>
<codeline lineno="728"><highlight class="normal"></highlight></codeline>
<codeline lineno="729"><highlight class="normal"></highlight><highlight class="comment">//<sp/>----<sp/>end<sp/>of<sp/>declarations,<sp/>header-only<sp/>implementations<sp/>follow<sp/>----</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="730"><highlight class="normal"></highlight></codeline>
<codeline lineno="731"><highlight class="normal"></highlight></codeline>
<codeline lineno="732"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceargagg" kindref="compound">argagg</ref><sp/>{</highlight></codeline>
<codeline lineno="733"><highlight class="normal"></highlight></codeline>
<codeline lineno="734"><highlight class="normal"></highlight></codeline>
<codeline lineno="735"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="736" refid="structargagg_1_1option__result_1acad0ebe8b52f37b25c6955b406ff809f" refkind="member"><highlight class="normal">T<sp/><ref refid="structargagg_1_1option__result_1acad0ebe8b52f37b25c6955b406ff809f" kindref="member">option_result::as</ref>()</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="737"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="738"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(this-&gt;<ref refid="structargagg_1_1option__result_1a10cf3c02b1c5e5d57f6b9f41b622da46" kindref="member">arg</ref>)<sp/>{</highlight></codeline>
<codeline lineno="739"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">convert::arg&lt;T&gt;</ref>(this-&gt;<ref refid="structargagg_1_1option__result_1a10cf3c02b1c5e5d57f6b9f41b622da46" kindref="member">arg</ref>);</highlight></codeline>
<codeline lineno="740"><highlight class="normal"><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="741"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1option__lacks__argument__error" kindref="compound">option_lacks_argument_error</ref>(</highlight><highlight class="stringliteral">&quot;option<sp/>has<sp/>no<sp/>argument&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="742"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="743"><highlight class="normal">}</highlight></codeline>
<codeline lineno="744"><highlight class="normal"></highlight></codeline>
<codeline lineno="745"><highlight class="normal"></highlight></codeline>
<codeline lineno="746"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="747" refid="structargagg_1_1option__result_1ae23be242ceea523b30659d07ebda12d5" refkind="member"><highlight class="normal">T<sp/><ref refid="structargagg_1_1option__result_1acad0ebe8b52f37b25c6955b406ff809f" kindref="member">option_result::as</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>t)</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="748"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="749"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(this-&gt;<ref refid="structargagg_1_1option__result_1a10cf3c02b1c5e5d57f6b9f41b622da46" kindref="member">arg</ref>)<sp/>{</highlight></codeline>
<codeline lineno="750"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="751"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">convert::arg&lt;T&gt;</ref>(this-&gt;<ref refid="structargagg_1_1option__result_1a10cf3c02b1c5e5d57f6b9f41b622da46" kindref="member">arg</ref>);</highlight></codeline>
<codeline lineno="752"><highlight class="normal"><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">catch</highlight><highlight class="normal"><sp/>(...)<sp/>{</highlight></codeline>
<codeline lineno="753"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>t;</highlight></codeline>
<codeline lineno="754"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="755"><highlight class="normal"><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="756"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>I<sp/>actually<sp/>think<sp/>this<sp/>will<sp/>never<sp/>happen.<sp/>To<sp/>call<sp/>this<sp/>method<sp/>you<sp/>have</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="757"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>to<sp/>access<sp/>a<sp/>specific<sp/>option_result<sp/>for<sp/>an<sp/>option.<sp/>If<sp/>there&apos;s<sp/>a</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="758"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>specific<sp/>option_result<sp/>then<sp/>the<sp/>option<sp/>was<sp/>found.<sp/>If<sp/>the<sp/>option</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="759"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>requires<sp/>an<sp/>argument<sp/>then<sp/>it<sp/>will<sp/>definitely<sp/>have<sp/>an<sp/>argument</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="760"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>otherwise<sp/>the<sp/>parser<sp/>would<sp/>have<sp/>complained.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="761"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>t;</highlight></codeline>
<codeline lineno="762"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="763"><highlight class="normal">}</highlight></codeline>
<codeline lineno="764"><highlight class="normal"></highlight></codeline>
<codeline lineno="765"><highlight class="normal"></highlight></codeline>
<codeline lineno="766"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="767" refid="structargagg_1_1option__result_1a7f6b5f2b7a5a7ca4aa5e9219e28fb62f" refkind="member"><highlight class="normal">option_result::operator<sp/>T<sp/>()</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="768"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="769"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;<ref refid="structargagg_1_1option__result_1acad0ebe8b52f37b25c6955b406ff809f" kindref="member">as&lt;T&gt;</ref>();</highlight></codeline>
<codeline lineno="770"><highlight class="normal">}</highlight></codeline>
<codeline lineno="771"><highlight class="normal"></highlight></codeline>
<codeline lineno="772"><highlight class="normal"></highlight></codeline>
<codeline lineno="773"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;<sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="774"><highlight class="normal">option_result::operator<sp/>bool<sp/>()</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="775"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="776"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;arg<sp/>!=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="777"><highlight class="normal">}</highlight></codeline>
<codeline lineno="778"><highlight class="normal"></highlight></codeline>
<codeline lineno="779"><highlight class="normal"></highlight></codeline>
<codeline lineno="780"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="781" refid="structargagg_1_1option__result_1a22f5e91d36266275de14db491b917544" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1option__result_1a22f5e91d36266275de14db491b917544" kindref="member">option_result::operator ! </ref>()</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="782"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="783"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>!</highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="keywordtype">bool</highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(*this);</highlight></codeline>
<codeline lineno="784"><highlight class="normal">}</highlight></codeline>
<codeline lineno="785"><highlight class="normal"></highlight></codeline>
<codeline lineno="786"><highlight class="normal"></highlight></codeline>
<codeline lineno="787"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="788" refid="structargagg_1_1option__results_1a1a8097d49a40ed772b64e99abbf188a6" refkind="member"><highlight class="normal"><ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/><ref refid="structargagg_1_1option__results_1a1a8097d49a40ed772b64e99abbf188a6" kindref="member">option_results::count</ref>()</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="789"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="790"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;<ref refid="structargagg_1_1option__results_1a5371fd527139e2a0c9036c8230f4dc9c" kindref="member">all</ref>.size();</highlight></codeline>
<codeline lineno="791"><highlight class="normal">}</highlight></codeline>
<codeline lineno="792"><highlight class="normal"></highlight></codeline>
<codeline lineno="793"><highlight class="normal"></highlight></codeline>
<codeline lineno="794"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="795" refid="structargagg_1_1option__results_1a3baaa4525cbc4c39aaf4841c93059336" refkind="member"><highlight class="normal"><ref refid="structargagg_1_1option__result" kindref="compound">option_result</ref>&amp;<sp/><ref refid="structargagg_1_1option__results_1a3baaa4525cbc4c39aaf4841c93059336" kindref="member">option_results::operator [] </ref>(<ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/>index)</highlight></codeline>
<codeline lineno="796"><highlight class="normal">{</highlight></codeline>
<codeline lineno="797"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;<ref refid="structargagg_1_1option__results_1a5371fd527139e2a0c9036c8230f4dc9c" kindref="member">all</ref>[index];</highlight></codeline>
<codeline lineno="798"><highlight class="normal">}</highlight></codeline>
<codeline lineno="799"><highlight class="normal"></highlight></codeline>
<codeline lineno="800"><highlight class="normal"></highlight></codeline>
<codeline lineno="801"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="802" refid="structargagg_1_1option__results_1ad36f1ddd9a96619bb6d9ac816a7a8e18" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1option__result" kindref="compound">option_result</ref>&amp;<sp/><ref refid="structargagg_1_1option__results_1a3baaa4525cbc4c39aaf4841c93059336" kindref="member">option_results::operator [] </ref>(<ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/>index)</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="803"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="804"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;<ref refid="structargagg_1_1option__results_1a5371fd527139e2a0c9036c8230f4dc9c" kindref="member">all</ref>[index];</highlight></codeline>
<codeline lineno="805"><highlight class="normal">}</highlight></codeline>
<codeline lineno="806"><highlight class="normal"></highlight></codeline>
<codeline lineno="807"><highlight class="normal"></highlight></codeline>
<codeline lineno="808"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="809" refid="structargagg_1_1option__results_1a9a51160f3a6d84e162e5ec909a2ed44a" refkind="member"><highlight class="normal">T<sp/><ref refid="structargagg_1_1option__results_1a9a51160f3a6d84e162e5ec909a2ed44a" kindref="member">option_results::as</ref>()</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="810"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="811"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(this-&gt;<ref refid="structargagg_1_1option__results_1a5371fd527139e2a0c9036c8230f4dc9c" kindref="member">all</ref>.size()<sp/>==<sp/>0)<sp/>{</highlight></codeline>
<codeline lineno="812"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="cpp/error/out_of_range" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::out_of_range</ref>(</highlight><highlight class="stringliteral">&quot;no<sp/>option<sp/>arguments<sp/>to<sp/>convert&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="813"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="814"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;<ref refid="structargagg_1_1option__results_1a5371fd527139e2a0c9036c8230f4dc9c" kindref="member">all</ref>.back().as&lt;T&gt;();</highlight></codeline>
<codeline lineno="815"><highlight class="normal">}</highlight></codeline>
<codeline lineno="816"><highlight class="normal"></highlight></codeline>
<codeline lineno="817"><highlight class="normal"></highlight></codeline>
<codeline lineno="818"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="819" refid="structargagg_1_1option__results_1a6349a76db68c9f3aa26c272b10294dbc" refkind="member"><highlight class="normal">T<sp/><ref refid="structargagg_1_1option__results_1a9a51160f3a6d84e162e5ec909a2ed44a" kindref="member">option_results::as</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T&amp;<sp/>t)</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="820"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="821"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(this-&gt;<ref refid="structargagg_1_1option__results_1a5371fd527139e2a0c9036c8230f4dc9c" kindref="member">all</ref>.size()<sp/>==<sp/>0)<sp/>{</highlight></codeline>
<codeline lineno="822"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>t;</highlight></codeline>
<codeline lineno="823"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="824"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;<ref refid="structargagg_1_1option__results_1a5371fd527139e2a0c9036c8230f4dc9c" kindref="member">all</ref>.back().as&lt;T&gt;(t);</highlight></codeline>
<codeline lineno="825"><highlight class="normal">}</highlight></codeline>
<codeline lineno="826"><highlight class="normal"></highlight></codeline>
<codeline lineno="827"><highlight class="normal"></highlight></codeline>
<codeline lineno="828"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="829" refid="structargagg_1_1option__results_1a2cc4fa25461d7e8811b7f3c589062f84" refkind="member"><highlight class="normal">option_results::operator<sp/>T<sp/>()</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="830"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="831"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;<ref refid="structargagg_1_1option__results_1a9a51160f3a6d84e162e5ec909a2ed44a" kindref="member">as&lt;T&gt;</ref>();</highlight></codeline>
<codeline lineno="832"><highlight class="normal">}</highlight></codeline>
<codeline lineno="833"><highlight class="normal"></highlight></codeline>
<codeline lineno="834"><highlight class="normal"></highlight></codeline>
<codeline lineno="835"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;<sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="836"><highlight class="normal">option_results::operator<sp/>bool<sp/>()</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="837"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="838"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;all.size()<sp/>&gt;<sp/>0;</highlight></codeline>
<codeline lineno="839"><highlight class="normal">}</highlight></codeline>
<codeline lineno="840"><highlight class="normal"></highlight></codeline>
<codeline lineno="841"><highlight class="normal"></highlight></codeline>
<codeline lineno="842"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="843" refid="structargagg_1_1option__results_1ae6ec9aa96c21218ce4c2aace633055de" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1option__results_1ae6ec9aa96c21218ce4c2aace633055de" kindref="member">option_results::operator ! </ref>()</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="844"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="845"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>!</highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="keywordtype">bool</highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(*this);</highlight></codeline>
<codeline lineno="846"><highlight class="normal">}</highlight></codeline>
<codeline lineno="847"><highlight class="normal"></highlight></codeline>
<codeline lineno="848"><highlight class="normal"></highlight></codeline>
<codeline lineno="849"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="850" refid="structargagg_1_1parser__results_1aa9ee92c458d2e79698db03e8aa350955" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1parser__results_1aa9ee92c458d2e79698db03e8aa350955" kindref="member">parser_results::has_option</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>name)</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="851"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="852"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>it<sp/>=<sp/>this-&gt;<ref refid="structargagg_1_1parser__results_1ae1aa657b375b7e4b5c918fa08ff402b7" kindref="member">options</ref>.find(name);</highlight></codeline>
<codeline lineno="853"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>(<sp/>it<sp/>!=<sp/>this-&gt;<ref refid="structargagg_1_1parser__results_1ae1aa657b375b7e4b5c918fa08ff402b7" kindref="member">options</ref>.end())<sp/>&amp;&amp;<sp/>it-&gt;second.all.size()<sp/>&gt;<sp/>0;</highlight></codeline>
<codeline lineno="854"><highlight class="normal">}</highlight></codeline>
<codeline lineno="855"><highlight class="normal"></highlight></codeline>
<codeline lineno="856"><highlight class="normal"></highlight></codeline>
<codeline lineno="857"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="858" refid="structargagg_1_1parser__results_1a4148c8c36d81d74fc80eada5072243eb" refkind="member"><highlight class="normal"><ref refid="structargagg_1_1option__results" kindref="compound">option_results</ref>&amp;<sp/><ref refid="structargagg_1_1parser__results_1a4148c8c36d81d74fc80eada5072243eb" kindref="member">parser_results::operator [] </ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>name)</highlight></codeline>
<codeline lineno="859"><highlight class="normal"></highlight><highlight class="keyword">try</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="860"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;<ref refid="structargagg_1_1parser__results_1ae1aa657b375b7e4b5c918fa08ff402b7" kindref="member">options</ref>.at(name);</highlight></codeline>
<codeline lineno="861"><highlight class="normal">}<sp/></highlight><highlight class="keywordflow">catch</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/error/out_of_range" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::out_of_range</ref>&amp;<sp/>e)<sp/>{</highlight></codeline>
<codeline lineno="862"><highlight class="normal"><sp/><sp/><ref refid="cpp/io/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostringstream</ref><sp/>msg;</highlight></codeline>
<codeline lineno="863"><highlight class="normal"><sp/><sp/>msg<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;no<sp/>option<sp/>named<sp/>\&quot;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>name<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;\&quot;<sp/>in<sp/>parser_results&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="864"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1unknown__option" kindref="compound">unknown_option</ref>(msg.<ref refid="cpp/io/basic_ostringstream/str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">str</ref>());</highlight></codeline>
<codeline lineno="865"><highlight class="normal">}</highlight></codeline>
<codeline lineno="866"><highlight class="normal"></highlight></codeline>
<codeline lineno="867"><highlight class="normal"></highlight></codeline>
<codeline lineno="868"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="869"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>option_results&amp;</highlight></codeline>
<codeline lineno="870" refid="structargagg_1_1parser__results_1acd9edf5398da4c18c97dee7cb9acc8c2" refkind="member"><highlight class="normal"><ref refid="structargagg_1_1parser__results_1a4148c8c36d81d74fc80eada5072243eb" kindref="member">parser_results::operator [] </ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>name)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="871"><highlight class="normal"></highlight><highlight class="keywordflow">try</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="872"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;<ref refid="structargagg_1_1parser__results_1ae1aa657b375b7e4b5c918fa08ff402b7" kindref="member">options</ref>.at(name);</highlight></codeline>
<codeline lineno="873"><highlight class="normal">}<sp/></highlight><highlight class="keywordflow">catch</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/error/out_of_range" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::out_of_range</ref>&amp;<sp/>e)<sp/>{</highlight></codeline>
<codeline lineno="874"><highlight class="normal"><sp/><sp/><ref refid="cpp/io/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostringstream</ref><sp/>msg;</highlight></codeline>
<codeline lineno="875"><highlight class="normal"><sp/><sp/>msg<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;no<sp/>option<sp/>named<sp/>\&quot;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>name<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;\&quot;<sp/>in<sp/>parser_results&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="876"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1unknown__option" kindref="compound">unknown_option</ref>(msg.<ref refid="cpp/io/basic_ostringstream/str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">str</ref>());</highlight></codeline>
<codeline lineno="877"><highlight class="normal">}</highlight></codeline>
<codeline lineno="878"><highlight class="normal"></highlight></codeline>
<codeline lineno="879"><highlight class="normal"></highlight></codeline>
<codeline lineno="880"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="881" refid="structargagg_1_1parser__results_1a085294825b4a65e62b48a9d36f5b8854" refkind="member"><highlight class="normal"><ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/><ref refid="structargagg_1_1parser__results_1a085294825b4a65e62b48a9d36f5b8854" kindref="member">parser_results::count</ref>()</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="882"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="883"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;<ref refid="structargagg_1_1parser__results_1a159b7d39369d6a3bc76bb484a109d6cc" kindref="member">pos</ref>.size();</highlight></codeline>
<codeline lineno="884"><highlight class="normal">}</highlight></codeline>
<codeline lineno="885"><highlight class="normal"></highlight></codeline>
<codeline lineno="886"><highlight class="normal"></highlight></codeline>
<codeline lineno="887"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="888" refid="structargagg_1_1parser__results_1a8614c9b865eec3154170e58c9d77a2fc" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/><ref refid="structargagg_1_1parser__results_1a4148c8c36d81d74fc80eada5072243eb" kindref="member">parser_results::operator [] </ref>(<ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/>index)</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="889"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="890"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;<ref refid="structargagg_1_1parser__results_1a159b7d39369d6a3bc76bb484a109d6cc" kindref="member">pos</ref>[index];</highlight></codeline>
<codeline lineno="891"><highlight class="normal">}</highlight></codeline>
<codeline lineno="892"><highlight class="normal"></highlight></codeline>
<codeline lineno="893"><highlight class="normal"></highlight></codeline>
<codeline lineno="894"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="895" refid="structargagg_1_1parser__results_1aca0b15689e4ec5d296fe300d2a4705cc" refkind="member"><highlight class="normal">T<sp/><ref refid="structargagg_1_1parser__results_1aca0b15689e4ec5d296fe300d2a4705cc" kindref="member">parser_results::as</ref>(<ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/>i)</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="896"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="897"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">convert::arg&lt;T&gt;</ref>(this-&gt;<ref refid="structargagg_1_1parser__results_1a159b7d39369d6a3bc76bb484a109d6cc" kindref="member">pos</ref>[i]);</highlight></codeline>
<codeline lineno="898"><highlight class="normal">}</highlight></codeline>
<codeline lineno="899"><highlight class="normal"></highlight></codeline>
<codeline lineno="900"><highlight class="normal"></highlight></codeline>
<codeline lineno="901"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="902" refid="structargagg_1_1parser__results_1a3ff0ea89f6a10dc05a77f77a6d457b2c" refkind="member"><highlight class="normal"><ref refid="cpp/container/vector" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::vector&lt;T&gt;</ref><sp/><ref refid="structargagg_1_1parser__results_1a3ff0ea89f6a10dc05a77f77a6d457b2c" kindref="member">parser_results::all_as</ref>()</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="903"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="904"><highlight class="normal"><sp/><sp/><ref refid="cpp/container/vector" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::vector&lt;T&gt;</ref><sp/>v(this-&gt;<ref refid="structargagg_1_1parser__results_1a159b7d39369d6a3bc76bb484a109d6cc" kindref="member">pos</ref>.size());</highlight></codeline>
<codeline lineno="905"><highlight class="normal"><sp/><sp/><ref refid="cpp/algorithm/transform" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::transform</ref>(</highlight></codeline>
<codeline lineno="906"><highlight class="normal"><sp/><sp/><sp/><sp/>this-&gt;<ref refid="structargagg_1_1parser__results_1a159b7d39369d6a3bc76bb484a109d6cc" kindref="member">pos</ref>.begin(),<sp/>this-&gt;pos.end(),<sp/>v.<ref refid="cpp/container/vector/begin" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">begin</ref>(),</highlight></codeline>
<codeline lineno="907"><highlight class="normal"><sp/><sp/><sp/><sp/>[](</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>arg)<sp/>{</highlight></codeline>
<codeline lineno="908"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>return<sp/>convert::arg&lt;T&gt;(arg);</highlight></codeline>
<codeline lineno="909"><highlight class="normal"><sp/><sp/><sp/><sp/>});</highlight></codeline>
<codeline lineno="910"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>v;</highlight></codeline>
<codeline lineno="911"><highlight class="normal">}</highlight></codeline>
<codeline lineno="912"><highlight class="normal"></highlight></codeline>
<codeline lineno="913"><highlight class="normal"></highlight></codeline>
<codeline lineno="914"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="915" refid="structargagg_1_1definition_1a70e132e1f3f5afec475374b45e93b790" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1definition_1a70e132e1f3f5afec475374b45e93b790" kindref="member">definition::wants_no_arguments</ref>()</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="916"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="917"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;<ref refid="structargagg_1_1definition_1aea9f1067d6254e6d440777851791aedb" kindref="member">num_args</ref><sp/>==<sp/>0;</highlight></codeline>
<codeline lineno="918"><highlight class="normal">}</highlight></codeline>
<codeline lineno="919"><highlight class="normal"></highlight></codeline>
<codeline lineno="920"><highlight class="normal"></highlight></codeline>
<codeline lineno="921"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="922" refid="structargagg_1_1definition_1a1c666fff3487eba0a76d5e2f1c119736" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1definition_1a1c666fff3487eba0a76d5e2f1c119736" kindref="member">definition::requires_arguments</ref>()</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="923"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="924"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;<ref refid="structargagg_1_1definition_1aea9f1067d6254e6d440777851791aedb" kindref="member">num_args</ref><sp/>&gt;<sp/>0;</highlight></codeline>
<codeline lineno="925"><highlight class="normal">}</highlight></codeline>
<codeline lineno="926"><highlight class="normal"></highlight></codeline>
<codeline lineno="927"><highlight class="normal"></highlight></codeline>
<codeline lineno="928"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="929" refid="namespaceargagg_1acb5531e41fdc903b94502fc13736d94a" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="namespaceargagg_1acb5531e41fdc903b94502fc13736d94a" kindref="member">cmd_line_arg_is_option_flag</ref>(</highlight></codeline>
<codeline lineno="930"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>s)</highlight></codeline>
<codeline lineno="931"><highlight class="normal">{</highlight></codeline>
<codeline lineno="932"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>len<sp/>=<sp/><ref refid="cpp/string/byte/strlen" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::strlen</ref>(s);</highlight></codeline>
<codeline lineno="933"><highlight class="normal"></highlight></codeline>
<codeline lineno="934"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>The<sp/>shortest<sp/>possible<sp/>flag<sp/>has<sp/>two<sp/>characters:<sp/>a<sp/>hyphen<sp/>and<sp/>an</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="935"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>alpha-numeric<sp/>character.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="936"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(len<sp/>&lt;<sp/>2)<sp/>{</highlight></codeline>
<codeline lineno="937"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="938"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="939"><highlight class="normal"></highlight></codeline>
<codeline lineno="940"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>All<sp/>flags<sp/>must<sp/>start<sp/>with<sp/>a<sp/>hyphen.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="941"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(s[0]<sp/>!=<sp/></highlight><highlight class="charliteral">&apos;-&apos;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="942"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="943"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="944"><highlight class="normal"></highlight></codeline>
<codeline lineno="945"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Shift<sp/>the<sp/>name<sp/>forward<sp/>by<sp/>a<sp/>character<sp/>to<sp/>account<sp/>for<sp/>the<sp/>initial<sp/>hyphen.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="946"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>This<sp/>means<sp/>if<sp/>s<sp/>was<sp/>originally<sp/>&quot;-v&quot;<sp/>then<sp/>name<sp/>will<sp/>be<sp/>&quot;v&quot;.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="947"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>name<sp/>=<sp/>s<sp/>+<sp/>1;</highlight></codeline>
<codeline lineno="948"><highlight class="normal"></highlight></codeline>
<codeline lineno="949"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Check<sp/>if<sp/>we&apos;re<sp/>dealing<sp/>with<sp/>a<sp/>long<sp/>flag.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="950"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>is_long<sp/>=<sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="951"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(s[1]<sp/>==<sp/></highlight><highlight class="charliteral">&apos;-&apos;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="952"><highlight class="normal"><sp/><sp/><sp/><sp/>is_long<sp/>=<sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="953"><highlight class="normal"></highlight></codeline>
<codeline lineno="954"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Just<sp/>--<sp/>is<sp/>not<sp/>a<sp/>valid<sp/>flag.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="955"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(len<sp/>==<sp/>2)<sp/>{</highlight></codeline>
<codeline lineno="956"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="957"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="958"><highlight class="normal"></highlight></codeline>
<codeline lineno="959"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Shift<sp/>the<sp/>name<sp/>forward<sp/>to<sp/>account<sp/>for<sp/>the<sp/>extra<sp/>hyphen.<sp/>This<sp/>means<sp/>if<sp/>s</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="960"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>was<sp/>originally<sp/>&quot;--output&quot;<sp/>then<sp/>name<sp/>will<sp/>be<sp/>&quot;output&quot;.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="961"><highlight class="normal"><sp/><sp/><sp/><sp/>name<sp/>=<sp/>s<sp/>+<sp/>2;</highlight></codeline>
<codeline lineno="962"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="963"><highlight class="normal"></highlight></codeline>
<codeline lineno="964"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>The<sp/>first<sp/>character<sp/>of<sp/>the<sp/>flag<sp/>name<sp/>must<sp/>be<sp/>alpha-numeric.<sp/>This<sp/>is<sp/>to</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="965"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>prevent<sp/>things<sp/>like<sp/>&quot;---a&quot;<sp/>from<sp/>being<sp/>valid<sp/>flags.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="966"><highlight class="normal"><sp/><sp/>len<sp/>=<sp/><ref refid="cpp/string/byte/strlen" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::strlen</ref>(name);</highlight></codeline>
<codeline lineno="967"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!<ref refid="cpp/string/byte/isalnum" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::isalnum</ref>(name[0]))<sp/>{</highlight></codeline>
<codeline lineno="968"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="969"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="970"><highlight class="normal"></highlight></codeline>
<codeline lineno="971"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>At<sp/>this<sp/>point<sp/>in<sp/>is_valid_flag_definition()<sp/>we<sp/>would<sp/>check<sp/>if<sp/>the<sp/>short</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="972"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>flag<sp/>has<sp/>only<sp/>one<sp/>character.<sp/>At<sp/>command<sp/>line<sp/>specification<sp/>you<sp/>can<sp/>group</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="973"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>short<sp/>flags<sp/>together<sp/>or<sp/>even<sp/>add<sp/>an<sp/>argument<sp/>to<sp/>a<sp/>short<sp/>flag<sp/>without<sp/>a</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="974"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>space<sp/>delimiter.<sp/>Thus<sp/>we<sp/>don&apos;t<sp/>check<sp/>if<sp/>this<sp/>has<sp/>only<sp/>one<sp/>character</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="975"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>because<sp/>it<sp/>might<sp/>not.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="976"><highlight class="normal"></highlight></codeline>
<codeline lineno="977"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>this<sp/>is<sp/>a<sp/>long<sp/>flag<sp/>then<sp/>we<sp/>expect<sp/>all<sp/>characters<sp/>*up<sp/>to*<sp/>an<sp/>equal<sp/>sign</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="978"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>to<sp/>be<sp/>alpha-numeric<sp/>or<sp/>a<sp/>hyphen.<sp/>After<sp/>the<sp/>equal<sp/>sign<sp/>you<sp/>are<sp/>specify<sp/>the</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="979"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>argument<sp/>to<sp/>a<sp/>long<sp/>flag<sp/>which<sp/>can<sp/>be<sp/>basically<sp/>anything.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="980"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(is_long)<sp/>{</highlight></codeline>
<codeline lineno="981"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>encountered_equal<sp/>=<sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="982"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="cpp/algorithm/all_any_none_of" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::all_of</ref>(name,<sp/>name<sp/>+<sp/>len,<sp/>[&amp;](</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">&amp;<sp/>c)<sp/>{</highlight></codeline>
<codeline lineno="983"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(encountered_equal)<sp/>{</highlight></codeline>
<codeline lineno="984"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="985"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="986"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(c<sp/>==<sp/></highlight><highlight class="charliteral">&apos;=&apos;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="987"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>encountered_equal<sp/>=<sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="988"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="989"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="990"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="cpp/string/byte/isalnum" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::isalnum</ref>(c)<sp/>||<sp/>c<sp/>==<sp/></highlight><highlight class="charliteral">&apos;-&apos;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="991"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="992"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>});</highlight></codeline>
<codeline lineno="993"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="994"><highlight class="normal"></highlight></codeline>
<codeline lineno="995"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>At<sp/>this<sp/>point<sp/>we<sp/>are<sp/>not<sp/>dealing<sp/>with<sp/>a<sp/>long<sp/>flag.<sp/>We<sp/>already<sp/>checked<sp/>that</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="996"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>the<sp/>first<sp/>character<sp/>is<sp/>alpha-numeric<sp/>so<sp/>we&apos;ve<sp/>got<sp/>the<sp/>case<sp/>of<sp/>a<sp/>single</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="997"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>short<sp/>flag<sp/>covered.<sp/>This<sp/>might<sp/>be<sp/>a<sp/>short<sp/>flag<sp/>group<sp/>though<sp/>and<sp/>we<sp/>might</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="998"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>be<sp/>tempted<sp/>to<sp/>check<sp/>that<sp/>each<sp/>character<sp/>of<sp/>the<sp/>short<sp/>flag<sp/>group<sp/>is</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="999"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>alpha-numeric.<sp/>However,<sp/>you<sp/>can<sp/>specify<sp/>the<sp/>argument<sp/>for<sp/>a<sp/>short<sp/>flag</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1000"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>without<sp/>a<sp/>space<sp/>delimiter<sp/>(e.g.<sp/>&quot;-I/usr/local/include&quot;)<sp/>so<sp/>you<sp/>can&apos;t<sp/>tell</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1001"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>the<sp/>rest<sp/>of<sp/>a<sp/>short<sp/>flag<sp/>group<sp/>is<sp/>part<sp/>of<sp/>the<sp/>argument<sp/>or<sp/>not<sp/>unless</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1002"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>you<sp/>know<sp/>what<sp/>is<sp/>a<sp/>defined<sp/>flag<sp/>or<sp/>not.<sp/>We<sp/>leave<sp/>that<sp/>kind<sp/>of<sp/>processing</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1003"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>to<sp/>the<sp/>parser.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1004"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1005"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1006"><highlight class="normal"></highlight></codeline>
<codeline lineno="1007"><highlight class="normal"></highlight></codeline>
<codeline lineno="1008"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1009" refid="namespaceargagg_1affa2ac4b0385ceafd6f97af921f7579e" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="namespaceargagg_1affa2ac4b0385ceafd6f97af921f7579e" kindref="member">is_valid_flag_definition</ref>(</highlight></codeline>
<codeline lineno="1010"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>s)</highlight></codeline>
<codeline lineno="1011"><highlight class="normal">{</highlight></codeline>
<codeline lineno="1012"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>len<sp/>=<sp/><ref refid="cpp/string/byte/strlen" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::strlen</ref>(s);</highlight></codeline>
<codeline lineno="1013"><highlight class="normal"></highlight></codeline>
<codeline lineno="1014"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>The<sp/>shortest<sp/>possible<sp/>flag<sp/>has<sp/>two<sp/>characters:<sp/>a<sp/>hyphen<sp/>and<sp/>an</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1015"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>alpha-numeric<sp/>character.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1016"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(len<sp/>&lt;<sp/>2)<sp/>{</highlight></codeline>
<codeline lineno="1017"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1018"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1019"><highlight class="normal"></highlight></codeline>
<codeline lineno="1020"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>All<sp/>flags<sp/>must<sp/>start<sp/>with<sp/>a<sp/>hyphen.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1021"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(s[0]<sp/>!=<sp/></highlight><highlight class="charliteral">&apos;-&apos;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="1022"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1023"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1024"><highlight class="normal"></highlight></codeline>
<codeline lineno="1025"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Shift<sp/>the<sp/>name<sp/>forward<sp/>by<sp/>a<sp/>character<sp/>to<sp/>account<sp/>for<sp/>the<sp/>initial<sp/>hyphen.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1026"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>This<sp/>means<sp/>if<sp/>s<sp/>was<sp/>originally<sp/>&quot;-v&quot;<sp/>then<sp/>name<sp/>will<sp/>be<sp/>&quot;v&quot;.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1027"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>name<sp/>=<sp/>s<sp/>+<sp/>1;</highlight></codeline>
<codeline lineno="1028"><highlight class="normal"></highlight></codeline>
<codeline lineno="1029"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Check<sp/>if<sp/>we&apos;re<sp/>dealing<sp/>with<sp/>a<sp/>long<sp/>flag.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1030"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>is_long<sp/>=<sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1031"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(s[1]<sp/>==<sp/></highlight><highlight class="charliteral">&apos;-&apos;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="1032"><highlight class="normal"><sp/><sp/><sp/><sp/>is_long<sp/>=<sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1033"><highlight class="normal"></highlight></codeline>
<codeline lineno="1034"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Just<sp/>--<sp/>is<sp/>not<sp/>a<sp/>valid<sp/>flag.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1035"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(len<sp/>==<sp/>2)<sp/>{</highlight></codeline>
<codeline lineno="1036"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1037"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1038"><highlight class="normal"></highlight></codeline>
<codeline lineno="1039"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Shift<sp/>the<sp/>name<sp/>forward<sp/>to<sp/>account<sp/>for<sp/>the<sp/>extra<sp/>hyphen.<sp/>This<sp/>means<sp/>if<sp/>s</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1040"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>was<sp/>originally<sp/>&quot;--output&quot;<sp/>then<sp/>name<sp/>will<sp/>be<sp/>&quot;output&quot;.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1041"><highlight class="normal"><sp/><sp/><sp/><sp/>name<sp/>=<sp/>s<sp/>+<sp/>2;</highlight></codeline>
<codeline lineno="1042"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1043"><highlight class="normal"></highlight></codeline>
<codeline lineno="1044"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>The<sp/>first<sp/>character<sp/>of<sp/>the<sp/>flag<sp/>name<sp/>must<sp/>be<sp/>alpha-numeric.<sp/>This<sp/>is<sp/>to</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1045"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>prevent<sp/>things<sp/>like<sp/>&quot;---a&quot;<sp/>from<sp/>being<sp/>valid<sp/>flags.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1046"><highlight class="normal"><sp/><sp/>len<sp/>=<sp/><ref refid="cpp/string/byte/strlen" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::strlen</ref>(name);</highlight></codeline>
<codeline lineno="1047"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!<ref refid="cpp/string/byte/isalnum" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::isalnum</ref>(name[0]))<sp/>{</highlight></codeline>
<codeline lineno="1048"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1049"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1050"><highlight class="normal"></highlight></codeline>
<codeline lineno="1051"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>this<sp/>is<sp/>a<sp/>short<sp/>flag<sp/>then<sp/>it<sp/>must<sp/>only<sp/>have<sp/>one<sp/>character.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1052"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!is_long<sp/>&amp;&amp;<sp/>len<sp/>&gt;<sp/>1)<sp/>{</highlight></codeline>
<codeline lineno="1053"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1054"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1055"><highlight class="normal"></highlight></codeline>
<codeline lineno="1056"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>The<sp/>rest<sp/>of<sp/>the<sp/>characters<sp/>must<sp/>be<sp/>alpha-numeric,<sp/>but<sp/>long<sp/>flags<sp/>are</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1057"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>allowed<sp/>to<sp/>have<sp/>hyphens<sp/>too.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1058"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="cpp/algorithm/all_any_none_of" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::all_of</ref>(name<sp/>+<sp/>1,<sp/>name<sp/>+<sp/>len,<sp/>[&amp;](</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">&amp;<sp/>c)<sp/>{</highlight></codeline>
<codeline lineno="1059"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="cpp/string/byte/isalnum" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::isalnum</ref>(c)<sp/>||<sp/>(c<sp/>==<sp/></highlight><highlight class="charliteral">&apos;-&apos;</highlight><highlight class="normal"><sp/>&amp;&amp;<sp/>is_long);</highlight></codeline>
<codeline lineno="1060"><highlight class="normal"><sp/><sp/><sp/><sp/>});</highlight></codeline>
<codeline lineno="1061"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1062"><highlight class="normal"></highlight></codeline>
<codeline lineno="1063"><highlight class="normal"></highlight></codeline>
<codeline lineno="1064"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1065" refid="namespaceargagg_1abcf4845730ad824564affe95051a5b98" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="namespaceargagg_1abcf4845730ad824564affe95051a5b98" kindref="member">flag_is_short</ref>(</highlight></codeline>
<codeline lineno="1066"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>s)</highlight></codeline>
<codeline lineno="1067"><highlight class="normal">{</highlight></codeline>
<codeline lineno="1068"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>s[0]<sp/>==<sp/></highlight><highlight class="charliteral">&apos;-&apos;</highlight><highlight class="normal"><sp/>&amp;&amp;<sp/><ref refid="cpp/string/byte/isalnum" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::isalnum</ref>(s[1]);</highlight></codeline>
<codeline lineno="1069"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1070"><highlight class="normal"></highlight></codeline>
<codeline lineno="1071"><highlight class="normal"></highlight></codeline>
<codeline lineno="1072"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1073" refid="structargagg_1_1parser__map_1a8701dda28757ea06a04fe1bed0a2eff6" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1parser__map_1a8701dda28757ea06a04fe1bed0a2eff6" kindref="member">parser_map::known_short_flag</ref>(</highlight></codeline>
<codeline lineno="1074"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>flag)</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="1075"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="1076"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;<ref refid="structargagg_1_1parser__map_1af2ace0b7403a1302566719ea2b97baad" kindref="member">short_map</ref>[</highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="normal"><ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref></highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(flag)]<sp/>!=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1077"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1078"><highlight class="normal"></highlight></codeline>
<codeline lineno="1079"><highlight class="normal"></highlight></codeline>
<codeline lineno="1080"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1081" refid="structargagg_1_1parser__map_1aeb9d3cf8ea6009d010c18a6a57f7b738" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1definition" kindref="compound">definition</ref>*<sp/><ref refid="structargagg_1_1parser__map_1aeb9d3cf8ea6009d010c18a6a57f7b738" kindref="member">parser_map::get_definition_for_short_flag</ref>(</highlight></codeline>
<codeline lineno="1082"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>flag)</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="1083"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="1084"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>this-&gt;<ref refid="structargagg_1_1parser__map_1af2ace0b7403a1302566719ea2b97baad" kindref="member">short_map</ref>[</highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="normal"><ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref></highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(flag)];</highlight></codeline>
<codeline lineno="1085"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1086"><highlight class="normal"></highlight></codeline>
<codeline lineno="1087"><highlight class="normal"></highlight></codeline>
<codeline lineno="1088"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1089" refid="structargagg_1_1parser__map_1ae1b75fceb05c89091696c0bdc1e5bd91" refkind="member"><highlight class="normal"></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1parser__map_1ae1b75fceb05c89091696c0bdc1e5bd91" kindref="member">parser_map::known_long_flag</ref>(</highlight></codeline>
<codeline lineno="1090"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>flag)</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="1091"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="1092"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>existing_long_flag<sp/>=<sp/>this-&gt;<ref refid="structargagg_1_1parser__map_1a5ed8cd6a5e57925359d33e9472773d49" kindref="member">long_map</ref>.find(flag);</highlight></codeline>
<codeline lineno="1093"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>existing_long_flag<sp/>!=<sp/><ref refid="structargagg_1_1parser__map_1a5ed8cd6a5e57925359d33e9472773d49" kindref="member">long_map</ref>.end();</highlight></codeline>
<codeline lineno="1094"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1095"><highlight class="normal"></highlight></codeline>
<codeline lineno="1096"><highlight class="normal"></highlight></codeline>
<codeline lineno="1097"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1098" refid="structargagg_1_1parser__map_1a1c933fca929439a558b6176b9b309b0b" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1definition" kindref="compound">definition</ref>*<sp/><ref refid="structargagg_1_1parser__map_1a1c933fca929439a558b6176b9b309b0b" kindref="member">parser_map::get_definition_for_long_flag</ref>(</highlight></codeline>
<codeline lineno="1099"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>flag)</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="1100"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="1101"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>existing_long_flag<sp/>=<sp/>this-&gt;<ref refid="structargagg_1_1parser__map_1a5ed8cd6a5e57925359d33e9472773d49" kindref="member">long_map</ref>.find(flag);</highlight></codeline>
<codeline lineno="1102"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(existing_long_flag<sp/>==<sp/><ref refid="structargagg_1_1parser__map_1a5ed8cd6a5e57925359d33e9472773d49" kindref="member">long_map</ref>.end())<sp/>{</highlight></codeline>
<codeline lineno="1103"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1104"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1105"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>existing_long_flag-&gt;second;</highlight></codeline>
<codeline lineno="1106"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1107"><highlight class="normal"></highlight></codeline>
<codeline lineno="1108"><highlight class="normal"></highlight></codeline>
<codeline lineno="1109"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1110" refid="namespaceargagg_1a7a7eacb2cf495cc33c08df68619fbf95" refkind="member"><highlight class="normal"><ref refid="structargagg_1_1parser__map" kindref="compound">parser_map</ref><sp/><ref refid="namespaceargagg_1a7a7eacb2cf495cc33c08df68619fbf95" kindref="member">validate_definitions</ref>(</highlight></codeline>
<codeline lineno="1111"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/container/vector" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::vector&lt;definition&gt;</ref>&amp;<sp/>definitions)</highlight></codeline>
<codeline lineno="1112"><highlight class="normal">{</highlight></codeline>
<codeline lineno="1113"><highlight class="normal"><sp/><sp/><ref refid="cpp/container/unordered_map" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::unordered_map&lt;std::string, const definition*&gt;</ref><sp/>long_map;</highlight></codeline>
<codeline lineno="1114"><highlight class="normal"><sp/><sp/><ref refid="structargagg_1_1parser__map" kindref="compound">parser_map</ref><sp/>map<sp/>{{{</highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">}},<sp/><ref refid="cpp/utility/move" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::move</ref>(long_map)};</highlight></codeline>
<codeline lineno="1115"><highlight class="normal"></highlight></codeline>
<codeline lineno="1116"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keyword">auto</highlight><highlight class="normal">&amp;<sp/>defn<sp/>:<sp/>definitions)<sp/>{</highlight></codeline>
<codeline lineno="1117"><highlight class="normal"></highlight></codeline>
<codeline lineno="1118"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(defn.flags.size()<sp/>==<sp/>0)<sp/>{</highlight></codeline>
<codeline lineno="1119"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/io/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostringstream</ref><sp/>msg;</highlight></codeline>
<codeline lineno="1120"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>msg<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;option<sp/>\&quot;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>defn.name<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;\&quot;<sp/>has<sp/>no<sp/>flag<sp/>definitions&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1121"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1invalid__flag" kindref="compound">invalid_flag</ref>(msg.<ref refid="cpp/io/basic_ostringstream/str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">str</ref>());</highlight></codeline>
<codeline lineno="1122"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1123"><highlight class="normal"></highlight></codeline>
<codeline lineno="1124"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keyword">auto</highlight><highlight class="normal">&amp;<sp/>flag<sp/>:<sp/>defn.flags)<sp/>{</highlight></codeline>
<codeline lineno="1125"><highlight class="normal"></highlight></codeline>
<codeline lineno="1126"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!<ref refid="namespaceargagg_1affa2ac4b0385ceafd6f97af921f7579e" kindref="member">is_valid_flag_definition</ref>(flag.data()))<sp/>{</highlight></codeline>
<codeline lineno="1127"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/io/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostringstream</ref><sp/>msg;</highlight></codeline>
<codeline lineno="1128"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>msg<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;flag<sp/>\&quot;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>flag<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;\&quot;<sp/>specified<sp/>for<sp/>option<sp/>\&quot;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>defn.name</highlight></codeline>
<codeline lineno="1129"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;\&quot;<sp/>is<sp/>invalid&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1130"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1invalid__flag" kindref="compound">invalid_flag</ref>(msg.<ref refid="cpp/io/basic_ostringstream/str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">str</ref>());</highlight></codeline>
<codeline lineno="1131"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1132"><highlight class="normal"></highlight></codeline>
<codeline lineno="1133"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(<ref refid="namespaceargagg_1abcf4845730ad824564affe95051a5b98" kindref="member">flag_is_short</ref>(flag.data()))<sp/>{</highlight></codeline>
<codeline lineno="1134"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/>short_flag_letter<sp/>=<sp/></highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="normal"><ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref></highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(flag[1]);</highlight></codeline>
<codeline lineno="1135"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>existing_short_flag<sp/>=</highlight></codeline>
<codeline lineno="1136"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>map.<ref refid="structargagg_1_1parser__map_1af2ace0b7403a1302566719ea2b97baad" kindref="member">short_map</ref>[short_flag_letter];</highlight></codeline>
<codeline lineno="1137"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>short_flag_already_exists<sp/>=<sp/>(existing_short_flag<sp/>!=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1138"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(short_flag_already_exists)<sp/>{</highlight></codeline>
<codeline lineno="1139"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/io/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostringstream</ref><sp/>msg;</highlight></codeline>
<codeline lineno="1140"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>msg<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;duplicate<sp/>short<sp/>flag<sp/>\&quot;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>flag</highlight></codeline>
<codeline lineno="1141"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;\&quot;<sp/>found,<sp/>specified<sp/>by<sp/>both<sp/>option<sp/><sp/>\&quot;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>defn.name</highlight></codeline>
<codeline lineno="1142"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;\&quot;<sp/>and<sp/>option<sp/>\&quot;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>existing_short_flag-&gt;name;</highlight></codeline>
<codeline lineno="1143"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1invalid__flag" kindref="compound">invalid_flag</ref>(msg.<ref refid="cpp/io/basic_ostringstream/str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">str</ref>());</highlight></codeline>
<codeline lineno="1144"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1145"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>map.<ref refid="structargagg_1_1parser__map_1af2ace0b7403a1302566719ea2b97baad" kindref="member">short_map</ref>[</highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="normal"><ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref></highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(short_flag_letter)]<sp/>=<sp/>&amp;defn;</highlight></codeline>
<codeline lineno="1146"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1147"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1148"><highlight class="normal"></highlight></codeline>
<codeline lineno="1149"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>we&apos;re<sp/>here<sp/>then<sp/>this<sp/>is<sp/>a<sp/>valid,<sp/>long-style<sp/>flag.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1150"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(map.<ref refid="structargagg_1_1parser__map_1ae1b75fceb05c89091696c0bdc1e5bd91" kindref="member">known_long_flag</ref>(flag))<sp/>{</highlight></codeline>
<codeline lineno="1151"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>existing_long_flag<sp/>=<sp/>map.<ref refid="structargagg_1_1parser__map_1a1c933fca929439a558b6176b9b309b0b" kindref="member">get_definition_for_long_flag</ref>(flag);</highlight></codeline>
<codeline lineno="1152"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/io/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostringstream</ref><sp/>msg;</highlight></codeline>
<codeline lineno="1153"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>msg<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;duplicate<sp/>long<sp/>flag<sp/>\&quot;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>flag</highlight></codeline>
<codeline lineno="1154"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;\&quot;<sp/>found,<sp/>specified<sp/>by<sp/>both<sp/>option<sp/><sp/>\&quot;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>defn.name</highlight></codeline>
<codeline lineno="1155"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;\&quot;<sp/>and<sp/>option<sp/>\&quot;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>existing_long_flag-&gt;name;</highlight></codeline>
<codeline lineno="1156"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1invalid__flag" kindref="compound">invalid_flag</ref>(msg.<ref refid="cpp/io/basic_ostringstream/str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">str</ref>());</highlight></codeline>
<codeline lineno="1157"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1158"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>map.<ref refid="structargagg_1_1parser__map_1a5ed8cd6a5e57925359d33e9472773d49" kindref="member">long_map</ref>.insert(<ref refid="cpp/utility/pair/make_pair" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::make_pair</ref>(flag,<sp/>&amp;defn));</highlight></codeline>
<codeline lineno="1159"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1160"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1161"><highlight class="normal"></highlight></codeline>
<codeline lineno="1162"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>map;</highlight></codeline>
<codeline lineno="1163"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1164"><highlight class="normal"></highlight></codeline>
<codeline lineno="1165"><highlight class="normal"></highlight></codeline>
<codeline lineno="1166"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1167" refid="structargagg_1_1parser_1a4f85341056c6f30e02c58b0c9b33dedb" refkind="member"><highlight class="normal"><ref refid="structargagg_1_1parser__results" kindref="compound">parser_results</ref><sp/><ref refid="structargagg_1_1parser_1a4f85341056c6f30e02c58b0c9b33dedb" kindref="member">parser::parse</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>argc,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">**<sp/>argv)</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="1168"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="1169"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Inspect<sp/>each<sp/>definition<sp/>to<sp/>see<sp/>if<sp/>its<sp/>valid.<sp/>You<sp/>may<sp/>wonder<sp/>&quot;why<sp/>don&apos;t</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1170"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>you<sp/>do<sp/>this<sp/>validation<sp/>on<sp/>construction?&quot;<sp/>I<sp/>had<sp/>thought<sp/>about<sp/>it<sp/>but</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1171"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>realized<sp/>that<sp/>since<sp/>I&apos;ve<sp/>made<sp/>the<sp/>parser<sp/>an<sp/>aggregate<sp/>type<sp/>(granted<sp/>it</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1172"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>just<sp/>&quot;aggregates&quot;<sp/>a<sp/>single<sp/>vector)<sp/>I<sp/>would<sp/>need<sp/>to<sp/>track<sp/>any<sp/>changes<sp/>to</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1173"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>the<sp/>definitions<sp/>vector<sp/>and<sp/>re-run<sp/>the<sp/>validity<sp/>check<sp/>in<sp/>order<sp/>to</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1174"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>maintain<sp/>this<sp/>expected<sp/>&quot;validity<sp/>invariant&quot;<sp/>on<sp/>the<sp/>object.<sp/>That<sp/>would</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1175"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>then<sp/>require<sp/>hiding<sp/>the<sp/>definitions<sp/>vector<sp/>as<sp/>a<sp/>private<sp/>entry<sp/>and<sp/>then</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1176"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>turning<sp/>the<sp/>parser<sp/>into<sp/>a<sp/>thin<sp/>interface<sp/>(by<sp/>re-exposing<sp/>setters<sp/>and</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1177"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>getters)<sp/>to<sp/>the<sp/>vector<sp/>methods<sp/>just<sp/>so<sp/>that<sp/>I<sp/>can<sp/>catch<sp/>when<sp/>the</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1178"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>definition<sp/>has<sp/>been<sp/>modified.<sp/>It<sp/>seems<sp/>much<sp/>simpler<sp/>to<sp/>just<sp/>enforce<sp/>the</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1179"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>validity<sp/>when<sp/>you<sp/>actually<sp/>want<sp/>to<sp/>parse<sp/>because<sp/>it&apos;s<sp/>at<sp/>the<sp/>moment<sp/>of</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1180"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>parsing<sp/>that<sp/>you<sp/>know<sp/>the<sp/>definitions<sp/>are<sp/>complete.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1181"><highlight class="normal"><sp/><sp/><ref refid="structargagg_1_1parser__map" kindref="compound">parser_map</ref><sp/>map<sp/>=<sp/><ref refid="namespaceargagg_1a7a7eacb2cf495cc33c08df68619fbf95" kindref="member">validate_definitions</ref>(this-&gt;<ref refid="structargagg_1_1parser_1a4f434651f34fad5c205c0159c24f7573" kindref="member">definitions</ref>);</highlight></codeline>
<codeline lineno="1182"><highlight class="normal"></highlight></codeline>
<codeline lineno="1183"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Initialize<sp/>the<sp/>parser<sp/>results<sp/>that<sp/>we&apos;ll<sp/>be<sp/>returning.<sp/>Store<sp/>the<sp/>program</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1184"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>name<sp/>(assumed<sp/>to<sp/>be<sp/>the<sp/>first<sp/>command<sp/>line<sp/>argument)<sp/>and<sp/>initialize</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1185"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>everything<sp/>else<sp/>as<sp/>empty.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1186"><highlight class="normal"><sp/><sp/><ref refid="cpp/container/unordered_map" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::unordered_map&lt;std::string, option_results&gt;</ref><sp/>options<sp/>{};</highlight></codeline>
<codeline lineno="1187"><highlight class="normal"><sp/><sp/><ref refid="cpp/container/vector" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::vector&lt;const char*&gt;</ref><sp/>pos;</highlight></codeline>
<codeline lineno="1188"><highlight class="normal"><sp/><sp/><ref refid="structargagg_1_1parser__results" kindref="compound">parser_results</ref><sp/>results<sp/>{argv[0],<sp/><ref refid="cpp/utility/move" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::move</ref>(options),<sp/><ref refid="cpp/utility/move" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::move</ref>(pos)};</highlight></codeline>
<codeline lineno="1189"><highlight class="normal"></highlight></codeline>
<codeline lineno="1190"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Add<sp/>an<sp/>empty<sp/>option<sp/>result<sp/>for<sp/>each<sp/>definition.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1191"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal">&amp;<sp/>defn<sp/>:<sp/>this-&gt;<ref refid="structargagg_1_1parser_1a4f434651f34fad5c205c0159c24f7573" kindref="member">definitions</ref>)<sp/>{</highlight></codeline>
<codeline lineno="1192"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structargagg_1_1option__results" kindref="compound">option_results</ref><sp/>opt_results<sp/>{{}};</highlight></codeline>
<codeline lineno="1193"><highlight class="normal"><sp/><sp/><sp/><sp/>results.<ref refid="structargagg_1_1parser__results_1ae1aa657b375b7e4b5c918fa08ff402b7" kindref="member">options</ref>.insert(</highlight></codeline>
<codeline lineno="1194"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/utility/pair/make_pair" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::make_pair</ref>(defn.name,<sp/>opt_results));</highlight></codeline>
<codeline lineno="1195"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1196"><highlight class="normal"></highlight></codeline>
<codeline lineno="1197"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Don&apos;t<sp/>start<sp/>off<sp/>ignoring<sp/>flags.<sp/>We<sp/>only<sp/>ignore<sp/>flags<sp/>after<sp/>a<sp/>--<sp/>shows<sp/>up</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1198"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>in<sp/>the<sp/>command<sp/>line<sp/>arguments.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1199"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>ignore_flags<sp/>=<sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1200"><highlight class="normal"></highlight></codeline>
<codeline lineno="1201"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Keep<sp/>track<sp/>of<sp/>any<sp/>options<sp/>that<sp/>are<sp/>expecting<sp/>arguments.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1202"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>last_flag_expecting_args<sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1203"><highlight class="normal"><sp/><sp/><ref refid="structargagg_1_1option__result" kindref="compound">option_result</ref>*<sp/>last_option_expecting_args<sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1204"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>num_option_args_to_consume<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="1205"><highlight class="normal"></highlight></codeline>
<codeline lineno="1206"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Get<sp/>pointers<sp/>to<sp/>pointers<sp/>so<sp/>we<sp/>can<sp/>treat<sp/>the<sp/>raw<sp/>pointer<sp/>array<sp/>as<sp/>an</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1207"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>iterator<sp/>for<sp/>standard<sp/>library<sp/>algorithms.<sp/>This<sp/>isn&apos;t<sp/>used<sp/>yet<sp/>but<sp/>can<sp/>be</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1208"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>used<sp/>to<sp/>template<sp/>this<sp/>function<sp/>to<sp/>work<sp/>on<sp/>iterators<sp/>over<sp/>strings<sp/>or</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1209"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>C-strings.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1210"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">**<sp/>arg_i<sp/>=<sp/>argv<sp/>+<sp/>1;</highlight></codeline>
<codeline lineno="1211"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">**<sp/>arg_end<sp/>=<sp/>argv<sp/>+<sp/>argc;</highlight></codeline>
<codeline lineno="1212"><highlight class="normal"></highlight></codeline>
<codeline lineno="1213"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(arg_i<sp/>!=<sp/>arg_end)<sp/>{</highlight></codeline>
<codeline lineno="1214"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>arg_i_cstr<sp/>=<sp/>*arg_i;</highlight></codeline>
<codeline lineno="1215"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>arg_i_len<sp/>=<sp/><ref refid="cpp/string/byte/strlen" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::strlen</ref>(arg_i_cstr);</highlight></codeline>
<codeline lineno="1216"><highlight class="normal"></highlight></codeline>
<codeline lineno="1217"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Some<sp/>behavior<sp/>to<sp/>note:<sp/>if<sp/>the<sp/>previous<sp/>option<sp/>is<sp/>expecting<sp/>an<sp/>argument</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1218"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>then<sp/>the<sp/>next<sp/>entry<sp/>will<sp/>be<sp/>treated<sp/>as<sp/>a<sp/>positional<sp/>argument<sp/>even<sp/>if</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1219"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>it<sp/>looks<sp/>like<sp/>a<sp/>flag.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1220"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>treat_as_positional_argument<sp/>=<sp/>(</highlight></codeline>
<codeline lineno="1221"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ignore_flags</highlight></codeline>
<codeline lineno="1222"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>||<sp/>num_option_args_to_consume<sp/>&gt;<sp/>0</highlight></codeline>
<codeline lineno="1223"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>||<sp/>!<ref refid="namespaceargagg_1acb5531e41fdc903b94502fc13736d94a" kindref="member">cmd_line_arg_is_option_flag</ref>(arg_i_cstr)</highlight></codeline>
<codeline lineno="1224"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>);</highlight></codeline>
<codeline lineno="1225"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(treat_as_positional_argument)<sp/>{</highlight></codeline>
<codeline lineno="1226"><highlight class="normal"></highlight></codeline>
<codeline lineno="1227"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>last<sp/>option<sp/>is<sp/>expecting<sp/>some<sp/>specific<sp/>positive<sp/>number<sp/>of</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1228"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>arguments<sp/>then<sp/>give<sp/>this<sp/>argument<sp/>to<sp/>that<sp/>option,<sp/>*regardless<sp/>of</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1229"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>whether<sp/>or<sp/>not<sp/>the<sp/>argument<sp/>looks<sp/>like<sp/>a<sp/>flag<sp/>or<sp/>is<sp/>the<sp/>special<sp/>&quot;--&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1230"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>argument*.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1231"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(num_option_args_to_consume<sp/>&gt;<sp/>0)<sp/>{</highlight></codeline>
<codeline lineno="1232"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>last_option_expecting_args-&gt;<ref refid="structargagg_1_1option__result_1a10cf3c02b1c5e5d57f6b9f41b622da46" kindref="member">arg</ref><sp/>=<sp/>arg_i_cstr;</highlight></codeline>
<codeline lineno="1233"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>--num_option_args_to_consume;</highlight></codeline>
<codeline lineno="1234"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>++arg_i;</highlight></codeline>
<codeline lineno="1235"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1236"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1237"><highlight class="normal"></highlight></codeline>
<codeline lineno="1238"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Now<sp/>we<sp/>check<sp/>if<sp/>this<sp/>is<sp/>just<sp/>&quot;--&quot;<sp/>which<sp/>is<sp/>a<sp/>special<sp/>argument<sp/>that</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1239"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>causes<sp/>all<sp/>following<sp/>arguments<sp/>to<sp/>be<sp/>treated<sp/>as<sp/>non-options<sp/>and<sp/>is</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1240"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>itselve<sp/>discarded.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1241"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(<ref refid="cpp/string/byte/strncmp" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::strncmp</ref>(arg_i_cstr,<sp/></highlight><highlight class="stringliteral">&quot;--&quot;</highlight><highlight class="normal">,<sp/>2)<sp/>==<sp/>0<sp/>&amp;&amp;<sp/>arg_i_len<sp/>==<sp/>2)<sp/>{</highlight></codeline>
<codeline lineno="1242"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ignore_flags<sp/>=<sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1243"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>++arg_i;</highlight></codeline>
<codeline lineno="1244"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1245"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1246"><highlight class="normal"></highlight></codeline>
<codeline lineno="1247"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>there<sp/>are<sp/>no<sp/>expectations<sp/>for<sp/>option<sp/>arguments<sp/>then<sp/>simply<sp/>use</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1248"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>this<sp/>argument<sp/>as<sp/>a<sp/>positional<sp/>argument.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1249"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>results.<ref refid="structargagg_1_1parser__results_1a159b7d39369d6a3bc76bb484a109d6cc" kindref="member">pos</ref>.<ref refid="cpp/container/vector/push_back" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">push_back</ref>(arg_i_cstr);</highlight></codeline>
<codeline lineno="1250"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>++arg_i;</highlight></codeline>
<codeline lineno="1251"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1252"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1253"><highlight class="normal"></highlight></codeline>
<codeline lineno="1254"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Reset<sp/>the<sp/>&quot;expecting<sp/>argument&quot;<sp/>state.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1255"><highlight class="normal"><sp/><sp/><sp/><sp/>last_flag_expecting_args<sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1256"><highlight class="normal"><sp/><sp/><sp/><sp/>last_option_expecting_args<sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1257"><highlight class="normal"><sp/><sp/><sp/><sp/>num_option_args_to_consume<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="1258"><highlight class="normal"></highlight></codeline>
<codeline lineno="1259"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>we&apos;re<sp/>at<sp/>this<sp/>point<sp/>then<sp/>we&apos;re<sp/>definitely<sp/>dealing<sp/>with<sp/>something</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1260"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>that<sp/>is<sp/>flag-like<sp/>and<sp/>has<sp/>hyphen<sp/>as<sp/>the<sp/>first<sp/>character<sp/>and<sp/>has<sp/>a</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1261"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>length<sp/>of<sp/>at<sp/>least<sp/>two<sp/>characters.<sp/>How<sp/>we<sp/>handle<sp/>this<sp/>potential<sp/>flag</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1262"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>depends<sp/>on<sp/>whether<sp/>or<sp/>not<sp/>it<sp/>is<sp/>a<sp/>long-option<sp/>so<sp/>we<sp/>check<sp/>that<sp/>first.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1263"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>is_long_flag<sp/>=<sp/>(arg_i_cstr[1]<sp/>==<sp/></highlight><highlight class="charliteral">&apos;-&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1264"><highlight class="normal"></highlight></codeline>
<codeline lineno="1265"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(is_long_flag)<sp/>{</highlight></codeline>
<codeline lineno="1266"><highlight class="normal"></highlight></codeline>
<codeline lineno="1267"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Long<sp/>flags<sp/>have<sp/>a<sp/>complication:<sp/>their<sp/>arguments<sp/>can<sp/>be<sp/>specified</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1268"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>using<sp/>an<sp/>&apos;=&apos;<sp/>character<sp/>right<sp/>inside<sp/>the<sp/>argument.<sp/>That<sp/>means<sp/>an</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1269"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>argument<sp/>like<sp/>&quot;--output=foobar.txt&quot;<sp/>is<sp/>actually<sp/>an<sp/>option<sp/>with<sp/>flag</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1270"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>&quot;--output&quot;<sp/>and<sp/>argument<sp/>&quot;foobar.txt&quot;.<sp/>So<sp/>we<sp/>look<sp/>for<sp/>the<sp/>first</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1271"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>instance<sp/>of<sp/>the<sp/>&apos;=&apos;<sp/>character<sp/>and<sp/>keep<sp/>it<sp/>in<sp/>long_flag_arg.<sp/>If</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1272"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>long_flag_arg<sp/>is<sp/>nullptr<sp/>then<sp/>we<sp/>didn&apos;t<sp/>find<sp/>&apos;=&apos;.<sp/>We<sp/>need<sp/>the</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1273"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>flag_len<sp/>to<sp/>construct<sp/>long_flag_str<sp/>below.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1274"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>long_flag_arg<sp/>=<sp/><ref refid="cpp/string/byte/strchr" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::strchr</ref>(arg_i_cstr,<sp/></highlight><highlight class="charliteral">&apos;=&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1275"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/>flag_len<sp/>=<sp/>arg_i_len;</highlight></codeline>
<codeline lineno="1276"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(long_flag_arg<sp/>!=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="1277"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>flag_len<sp/>=<sp/></highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="normal"><ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref></highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(long_flag_arg<sp/>-<sp/>arg_i_cstr);</highlight></codeline>
<codeline lineno="1278"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1279"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref><sp/>long_flag_str(arg_i_cstr,<sp/>flag_len);</highlight></codeline>
<codeline lineno="1280"><highlight class="normal"></highlight></codeline>
<codeline lineno="1281"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!map.<ref refid="structargagg_1_1parser__map_1ae1b75fceb05c89091696c0bdc1e5bd91" kindref="member">known_long_flag</ref>(long_flag_str))<sp/>{</highlight></codeline>
<codeline lineno="1282"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/io/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostringstream</ref><sp/>msg;</highlight></codeline>
<codeline lineno="1283"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>msg<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;found<sp/>unexpected<sp/>flag:<sp/>&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>long_flag_str;</highlight></codeline>
<codeline lineno="1284"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1unexpected__option__error" kindref="compound">unexpected_option_error</ref>(msg.<ref refid="cpp/io/basic_ostringstream/str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">str</ref>());</highlight></codeline>
<codeline lineno="1285"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1286"><highlight class="normal"></highlight></codeline>
<codeline lineno="1287"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>defn<sp/>=<sp/>map.<ref refid="structargagg_1_1parser__map_1a1c933fca929439a558b6176b9b309b0b" kindref="member">get_definition_for_long_flag</ref>(long_flag_str);</highlight></codeline>
<codeline lineno="1288"><highlight class="normal"></highlight></codeline>
<codeline lineno="1289"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(long_flag_arg<sp/>!=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal"><sp/>&amp;&amp;<sp/>defn-&gt;num_args<sp/>==<sp/>0)<sp/>{</highlight></codeline>
<codeline lineno="1290"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/io/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostringstream</ref><sp/>msg;</highlight></codeline>
<codeline lineno="1291"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>msg<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;found<sp/>argument<sp/>for<sp/>option<sp/>not<sp/>expecting<sp/>an<sp/>argument:<sp/>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1292"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&lt;&lt;<sp/>arg_i_cstr;</highlight></codeline>
<codeline lineno="1293"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1unexpected__argument__error" kindref="compound">unexpected_argument_error</ref>(msg.<ref refid="cpp/io/basic_ostringstream/str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">str</ref>());</highlight></codeline>
<codeline lineno="1294"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1295"><highlight class="normal"></highlight></codeline>
<codeline lineno="1296"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>We&apos;ve<sp/>got<sp/>a<sp/>legitimate,<sp/>known<sp/>long<sp/>flag<sp/>option<sp/>so<sp/>we<sp/>add<sp/>an<sp/>option</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1297"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>result.<sp/>This<sp/>option<sp/>result<sp/>initially<sp/>has<sp/>an<sp/>arg<sp/>of<sp/>nullptr,<sp/>but<sp/>that</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1298"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>might<sp/>change<sp/>in<sp/>the<sp/>following<sp/>block.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1299"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal">&amp;<sp/>opt_results<sp/>=<sp/>results.<ref refid="structargagg_1_1parser__results_1ae1aa657b375b7e4b5c918fa08ff402b7" kindref="member">options</ref>[defn-&gt;name];</highlight></codeline>
<codeline lineno="1300"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structargagg_1_1option__result" kindref="compound">option_result</ref><sp/>opt_result<sp/>{</highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">};</highlight></codeline>
<codeline lineno="1301"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>opt_results.all.push_back(<ref refid="cpp/utility/move" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::move</ref>(opt_result));</highlight></codeline>
<codeline lineno="1302"><highlight class="normal"></highlight></codeline>
<codeline lineno="1303"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(defn-&gt;requires_arguments())<sp/>{</highlight></codeline>
<codeline lineno="1304"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>there_is_an_equal_delimited_arg<sp/>=<sp/>(long_flag_arg<sp/>!=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1305"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(there_is_an_equal_delimited_arg)<sp/>{</highlight></codeline>
<codeline lineno="1306"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>long_flag_arg<sp/>would<sp/>be<sp/>&quot;=foo&quot;<sp/>in<sp/>the<sp/>&quot;--output=foo&quot;<sp/>case<sp/>so<sp/>we</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1307"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>increment<sp/>by<sp/>1<sp/>to<sp/>get<sp/>rid<sp/>of<sp/>the<sp/>equal<sp/>sign.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1308"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>opt_results.all.back().arg<sp/>=<sp/>long_flag_arg<sp/>+<sp/>1;</highlight></codeline>
<codeline lineno="1309"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="1310"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>last_flag_expecting_args<sp/>=<sp/>arg_i_cstr;</highlight></codeline>
<codeline lineno="1311"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>last_option_expecting_args<sp/>=<sp/>&amp;(opt_results.all.back());</highlight></codeline>
<codeline lineno="1312"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>num_option_args_to_consume<sp/>=<sp/>defn-&gt;num_args;</highlight></codeline>
<codeline lineno="1313"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1314"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1315"><highlight class="normal"></highlight></codeline>
<codeline lineno="1316"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>++arg_i;</highlight></codeline>
<codeline lineno="1317"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1318"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1319"><highlight class="normal"></highlight></codeline>
<codeline lineno="1320"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>we&apos;ve<sp/>made<sp/>it<sp/>here<sp/>then<sp/>we&apos;re<sp/>looking<sp/>at<sp/>either<sp/>a<sp/>short<sp/>flag<sp/>or<sp/>a</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1321"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>group<sp/>of<sp/>short<sp/>flags.<sp/>Short<sp/>flags<sp/>can<sp/>be<sp/>grouped<sp/>together<sp/>so<sp/>long<sp/>as</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1322"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>they<sp/>don&apos;t<sp/>require<sp/>any<sp/>arguments<sp/>unless<sp/>the<sp/>option<sp/>that<sp/>does<sp/>is<sp/>the</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1323"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>last<sp/>in<sp/>the<sp/>group<sp/>(&quot;-o<sp/>x<sp/>-v&quot;<sp/>is<sp/>okay,<sp/>&quot;-vo<sp/>x&quot;<sp/>is<sp/>okay,<sp/>&quot;-ov<sp/>x&quot;<sp/>is</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1324"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>not).<sp/>So<sp/>starting<sp/>after<sp/>the<sp/>dash<sp/>we&apos;re<sp/>going<sp/>to<sp/>process<sp/>each<sp/>character</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1325"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>as<sp/>if<sp/>it<sp/>were<sp/>a<sp/>separate<sp/>flag.<sp/>Note<sp/>&quot;sf_idx&quot;<sp/>stands<sp/>for<sp/>&quot;short<sp/>flag</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1326"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>index&quot;.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1327"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(<ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/>sf_idx<sp/>=<sp/>1;<sp/>sf_idx<sp/>&lt;<sp/>arg_i_len;<sp/>++sf_idx)<sp/>{</highlight></codeline>
<codeline lineno="1328"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>short_flag<sp/>=<sp/>arg_i_cstr[sf_idx];</highlight></codeline>
<codeline lineno="1329"><highlight class="normal"></highlight></codeline>
<codeline lineno="1330"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!<ref refid="cpp/string/byte/isalnum" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::isalnum</ref>(short_flag))<sp/>{</highlight></codeline>
<codeline lineno="1331"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/io/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostringstream</ref><sp/>msg;</highlight></codeline>
<codeline lineno="1332"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>msg<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;found<sp/>non-alphanumeric<sp/>character<sp/>&apos;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>arg_i_cstr[sf_idx]</highlight></codeline>
<codeline lineno="1333"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;&apos;<sp/>in<sp/>flag<sp/>group<sp/>&apos;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>arg_i_cstr<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;&apos;&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1334"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="cpp/error/domain_error" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::domain_error</ref>(msg.<ref refid="cpp/io/basic_ostringstream/str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">str</ref>());</highlight></codeline>
<codeline lineno="1335"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1336"><highlight class="normal"></highlight></codeline>
<codeline lineno="1337"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!map.<ref refid="structargagg_1_1parser__map_1a8701dda28757ea06a04fe1bed0a2eff6" kindref="member">known_short_flag</ref>(short_flag))<sp/>{</highlight></codeline>
<codeline lineno="1338"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/io/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostringstream</ref><sp/>msg;</highlight></codeline>
<codeline lineno="1339"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>msg<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;found<sp/>unexpected<sp/>flag<sp/>&apos;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>arg_i_cstr[sf_idx]</highlight></codeline>
<codeline lineno="1340"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;&apos;<sp/>in<sp/>flag<sp/>group<sp/>&apos;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>arg_i_cstr<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;&apos;&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1341"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1unexpected__option__error" kindref="compound">unexpected_option_error</ref>(msg.<ref refid="cpp/io/basic_ostringstream/str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">str</ref>());</highlight></codeline>
<codeline lineno="1342"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1343"><highlight class="normal"></highlight></codeline>
<codeline lineno="1344"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>defn<sp/>=<sp/>map.<ref refid="structargagg_1_1parser__map_1aeb9d3cf8ea6009d010c18a6a57f7b738" kindref="member">get_definition_for_short_flag</ref>(short_flag);</highlight></codeline>
<codeline lineno="1345"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal">&amp;<sp/>opt_results<sp/>=<sp/>results.<ref refid="structargagg_1_1parser__results_1ae1aa657b375b7e4b5c918fa08ff402b7" kindref="member">options</ref>[defn-&gt;name];</highlight></codeline>
<codeline lineno="1346"><highlight class="normal"></highlight></codeline>
<codeline lineno="1347"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Create<sp/>an<sp/>option<sp/>result<sp/>with<sp/>an<sp/>empty<sp/>argument<sp/>(for<sp/>now)<sp/>and<sp/>add<sp/>it</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1348"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>to<sp/>this<sp/>option&apos;s<sp/>results.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1349"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structargagg_1_1option__result" kindref="compound">option_result</ref><sp/>opt_result<sp/>{</highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">};</highlight></codeline>
<codeline lineno="1350"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>opt_results.all.push_back(<ref refid="cpp/utility/move" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::move</ref>(opt_result));</highlight></codeline>
<codeline lineno="1351"><highlight class="normal"></highlight></codeline>
<codeline lineno="1352"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(defn-&gt;requires_arguments())<sp/>{</highlight></codeline>
<codeline lineno="1353"><highlight class="normal"></highlight></codeline>
<codeline lineno="1354"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>this<sp/>short<sp/>flag&apos;s<sp/>option<sp/>requires<sp/>an<sp/>argument<sp/>and<sp/>we&apos;re<sp/>the</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1355"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>last<sp/>flag<sp/>in<sp/>the<sp/>short<sp/>flag<sp/>group<sp/>then<sp/>just<sp/>put<sp/>the<sp/>parser<sp/>into</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1356"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>&quot;expecting<sp/>argument<sp/>for<sp/>last<sp/>option&quot;<sp/>state<sp/>and<sp/>move<sp/>onto<sp/>the<sp/>next</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1357"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>command<sp/>line<sp/>argument.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1358"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>is_last_short_flag_in_group<sp/>=<sp/>(sf_idx<sp/>==<sp/>arg_i_len<sp/>-<sp/>1);</highlight></codeline>
<codeline lineno="1359"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(is_last_short_flag_in_group)<sp/>{</highlight></codeline>
<codeline lineno="1360"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>last_flag_expecting_args<sp/>=<sp/>arg_i_cstr;</highlight></codeline>
<codeline lineno="1361"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>last_option_expecting_args<sp/>=<sp/>&amp;(opt_results.all.back());</highlight></codeline>
<codeline lineno="1362"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>num_option_args_to_consume<sp/>=<sp/>defn-&gt;num_args;</highlight></codeline>
<codeline lineno="1363"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1364"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1365"><highlight class="normal"></highlight></codeline>
<codeline lineno="1366"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>this<sp/>short<sp/>flag&apos;s<sp/>option<sp/>requires<sp/>an<sp/>argument<sp/>and<sp/>we&apos;re<sp/>NOT<sp/>the</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1367"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>last<sp/>flag<sp/>in<sp/>the<sp/>short<sp/>flag<sp/>group<sp/>then<sp/>we<sp/>automatically<sp/>consume</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1368"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>the<sp/>rest<sp/>of<sp/>the<sp/>short<sp/>flag<sp/>group<sp/>as<sp/>the<sp/>argument<sp/>for<sp/>this<sp/>flag.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1369"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>This<sp/>is<sp/>how<sp/>we<sp/>get<sp/>the<sp/>POSIX<sp/>behavior<sp/>of<sp/>being<sp/>able<sp/>to<sp/>specify<sp/>a</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1370"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>flag&apos;s<sp/>arguments<sp/>without<sp/>a<sp/>white<sp/>space<sp/>delimiter<sp/>(e.g.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1371"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>&quot;-I/usr/local/include&quot;).</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1372"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>opt_results.all.back().arg<sp/>=<sp/>arg_i_cstr<sp/>+<sp/>sf_idx<sp/>+<sp/>1;</highlight></codeline>
<codeline lineno="1373"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1374"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1375"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1376"><highlight class="normal"></highlight></codeline>
<codeline lineno="1377"><highlight class="normal"><sp/><sp/><sp/><sp/>++arg_i;</highlight></codeline>
<codeline lineno="1378"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1379"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1380"><highlight class="normal"></highlight></codeline>
<codeline lineno="1381"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>If<sp/>we&apos;re<sp/>done<sp/>with<sp/>all<sp/>of<sp/>the<sp/>arguments<sp/>but<sp/>are<sp/>still<sp/>expecting</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1382"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>arguments<sp/>for<sp/>a<sp/>previous<sp/>option<sp/>then<sp/>we<sp/>haven&apos;t<sp/>satisfied<sp/>that<sp/>option.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1383"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>This<sp/>is<sp/>an<sp/>error.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1384"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(num_option_args_to_consume<sp/>&gt;<sp/>0)<sp/>{</highlight></codeline>
<codeline lineno="1385"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="cpp/io/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostringstream</ref><sp/>msg;</highlight></codeline>
<codeline lineno="1386"><highlight class="normal"><sp/><sp/><sp/><sp/>msg<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;last<sp/>option<sp/>\&quot;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>last_flag_expecting_args</highlight></codeline>
<codeline lineno="1387"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;\&quot;<sp/>expects<sp/>an<sp/>argument<sp/>but<sp/>the<sp/>parser<sp/>ran<sp/>out<sp/>of<sp/>command<sp/>line<sp/>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1388"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;arguments<sp/>to<sp/>parse&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1389"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1option__lacks__argument__error" kindref="compound">option_lacks_argument_error</ref>(msg.<ref refid="cpp/io/basic_ostringstream/str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">str</ref>());</highlight></codeline>
<codeline lineno="1390"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1391"><highlight class="normal"></highlight></codeline>
<codeline lineno="1392"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>results;</highlight></codeline>
<codeline lineno="1393"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1394"><highlight class="normal"></highlight></codeline>
<codeline lineno="1395"><highlight class="normal"></highlight></codeline>
<codeline lineno="1396"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1397" refid="structargagg_1_1parser_1a2b9d95a4e53822516179cc515017f9a0" refkind="member"><highlight class="normal"><ref refid="structargagg_1_1parser__results" kindref="compound">parser_results</ref><sp/><ref refid="structargagg_1_1parser_1a4f85341056c6f30e02c58b0c9b33dedb" kindref="member">parser::parse</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>argc,<sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">**<sp/>argv)</highlight><highlight class="keyword"><sp/>const</highlight></codeline>
<codeline lineno="1398"><highlight class="keyword"></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="1399"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1parser_1a4f85341056c6f30e02c58b0c9b33dedb" kindref="member">parse</ref>(argc,<sp/></highlight><highlight class="keyword">const_cast&lt;</highlight><highlight class="keyword">const<sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">**</highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(argv));</highlight></codeline>
<codeline lineno="1400"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1401"><highlight class="normal"></highlight></codeline>
<codeline lineno="1402"><highlight class="normal"></highlight></codeline>
<codeline lineno="1403"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceargagg_1_1convert" kindref="compound">convert</ref><sp/>{</highlight></codeline>
<codeline lineno="1404"><highlight class="normal"></highlight></codeline>
<codeline lineno="1405"><highlight class="normal"></highlight></codeline>
<codeline lineno="1412"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;<sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1413" refid="namespaceargagg_1_1convert_1a102368079a90aef2388a0af87e84cfa6" refkind="member"><highlight class="normal"><sp/><sp/>T<sp/><ref refid="namespaceargagg_1_1convert_1a102368079a90aef2388a0af87e84cfa6" kindref="member">long_</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>)</highlight></codeline>
<codeline lineno="1414"><highlight class="normal"><sp/><sp/>{</highlight></codeline>
<codeline lineno="1415"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>endptr<sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1416"><highlight class="normal"><sp/><sp/><sp/><sp/>errno<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="1417"><highlight class="normal"><sp/><sp/><sp/><sp/>T<sp/>ret<sp/>=<sp/></highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="normal">T</highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(<ref refid="cpp/string/byte/strtol" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::strtol</ref>(<ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>,<sp/>&amp;endptr,<sp/>0));</highlight></codeline>
<codeline lineno="1418"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(endptr<sp/>==<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>)<sp/>{</highlight></codeline>
<codeline lineno="1419"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/io/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostringstream</ref><sp/>msg;</highlight></codeline>
<codeline lineno="1420"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>msg<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;unable<sp/>to<sp/>convert<sp/>argument<sp/>to<sp/>integer:<sp/>\&quot;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref><sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;\&quot;&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1421"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="cpp/error/invalid_argument" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::invalid_argument</ref>(msg.<ref refid="cpp/io/basic_ostringstream/str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">str</ref>());</highlight></codeline>
<codeline lineno="1422"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1423"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(errno<sp/>==<sp/>ERANGE)<sp/>{</highlight></codeline>
<codeline lineno="1424"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="cpp/error/out_of_range" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::out_of_range</ref>(</highlight><highlight class="stringliteral">&quot;argument<sp/>numeric<sp/>value<sp/>out<sp/>of<sp/>range&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1425"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1426"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="1427"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1428"><highlight class="normal"></highlight></codeline>
<codeline lineno="1429"><highlight class="normal"></highlight></codeline>
<codeline lineno="1436"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;<sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1437" refid="namespaceargagg_1_1convert_1af02b6303e8a64b9f13ae8ac7365176ec" refkind="member"><highlight class="normal"><sp/><sp/>T<sp/><ref refid="namespaceargagg_1_1convert_1af02b6303e8a64b9f13ae8ac7365176ec" kindref="member">long_long_</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>)</highlight></codeline>
<codeline lineno="1438"><highlight class="normal"><sp/><sp/>{</highlight></codeline>
<codeline lineno="1439"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>endptr<sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1440"><highlight class="normal"><sp/><sp/><sp/><sp/>errno<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="1441"><highlight class="normal"><sp/><sp/><sp/><sp/>T<sp/>ret<sp/>=<sp/></highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="normal">T</highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(<ref refid="cpp/string/byte/strtol" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::strtoll</ref>(<ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>,<sp/>&amp;endptr,<sp/>0));</highlight></codeline>
<codeline lineno="1442"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(endptr<sp/>==<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>)<sp/>{</highlight></codeline>
<codeline lineno="1443"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/io/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostringstream</ref><sp/>msg;</highlight></codeline>
<codeline lineno="1444"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>msg<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;unable<sp/>to<sp/>convert<sp/>argument<sp/>to<sp/>integer:<sp/>\&quot;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref><sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;\&quot;&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1445"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="cpp/error/invalid_argument" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::invalid_argument</ref>(msg.<ref refid="cpp/io/basic_ostringstream/str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">str</ref>());</highlight></codeline>
<codeline lineno="1446"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1447"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(errno<sp/>==<sp/>ERANGE)<sp/>{</highlight></codeline>
<codeline lineno="1448"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="cpp/error/out_of_range" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::out_of_range</ref>(</highlight><highlight class="stringliteral">&quot;argument<sp/>numeric<sp/>value<sp/>out<sp/>of<sp/>range&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1449"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1450"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="1451"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1452"><highlight class="normal"></highlight></codeline>
<codeline lineno="1453"><highlight class="normal"></highlight></codeline>
<codeline lineno="1454" refid="argagg_8hpp_1a504e64d4a54babb408ff3b999f6e2185" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DEFINE_CONVERSION_FROM_LONG_(TYPE)<sp/>\</highlight></codeline>
<codeline lineno="1455"><highlight class="preprocessor"><sp/><sp/>template<sp/>&lt;&gt;<sp/>inline<sp/>\</highlight></codeline>
<codeline lineno="1456"><highlight class="preprocessor"><sp/><sp/>TYPE<sp/>arg(const<sp/>char*<sp/>arg)<sp/>\</highlight></codeline>
<codeline lineno="1457"><highlight class="preprocessor"><sp/><sp/>{<sp/>\</highlight></codeline>
<codeline lineno="1458"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>return<sp/>long_&lt;TYPE&gt;(arg);<sp/>\</highlight></codeline>
<codeline lineno="1459"><highlight class="preprocessor"><sp/><sp/>}</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1460"><highlight class="normal"></highlight></codeline>
<codeline lineno="1461"><highlight class="normal"><sp/><sp/><ref refid="argagg_8hpp_1a504e64d4a54babb408ff3b999f6e2185" kindref="member">DEFINE_CONVERSION_FROM_LONG_</ref>(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1462"><highlight class="normal"><sp/><sp/><ref refid="argagg_8hpp_1a504e64d4a54babb408ff3b999f6e2185" kindref="member">DEFINE_CONVERSION_FROM_LONG_</ref>(</highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1463"><highlight class="normal"><sp/><sp/><ref refid="argagg_8hpp_1a504e64d4a54babb408ff3b999f6e2185" kindref="member">DEFINE_CONVERSION_FROM_LONG_</ref>(</highlight><highlight class="keywordtype">signed</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1464"><highlight class="normal"><sp/><sp/><ref refid="argagg_8hpp_1a504e64d4a54babb408ff3b999f6e2185" kindref="member">DEFINE_CONVERSION_FROM_LONG_</ref>(</highlight><highlight class="keywordtype">short</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1465"><highlight class="normal"><sp/><sp/><ref refid="argagg_8hpp_1a504e64d4a54babb408ff3b999f6e2185" kindref="member">DEFINE_CONVERSION_FROM_LONG_</ref>(</highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">short</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1466"><highlight class="normal"><sp/><sp/><ref refid="argagg_8hpp_1a504e64d4a54babb408ff3b999f6e2185" kindref="member">DEFINE_CONVERSION_FROM_LONG_</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1467"><highlight class="normal"><sp/><sp/><ref refid="argagg_8hpp_1a504e64d4a54babb408ff3b999f6e2185" kindref="member">DEFINE_CONVERSION_FROM_LONG_</ref>(</highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1468"><highlight class="normal"><sp/><sp/><ref refid="argagg_8hpp_1a504e64d4a54babb408ff3b999f6e2185" kindref="member">DEFINE_CONVERSION_FROM_LONG_</ref>(</highlight><highlight class="keywordtype">long</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1469"><highlight class="normal"><sp/><sp/><ref refid="argagg_8hpp_1a504e64d4a54babb408ff3b999f6e2185" kindref="member">DEFINE_CONVERSION_FROM_LONG_</ref>(</highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">long</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1470"><highlight class="normal"></highlight></codeline>
<codeline lineno="1471"><highlight class="normal"></highlight><highlight class="preprocessor">#undef<sp/>DEFINE_CONVERSION_FROM_LONG_</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1472"><highlight class="normal"></highlight></codeline>
<codeline lineno="1473"><highlight class="normal"></highlight></codeline>
<codeline lineno="1474" refid="argagg_8hpp_1a0191d1a4f98481f2ae008b7cf1df0335" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DEFINE_CONVERSION_FROM_LONG_LONG_(TYPE)<sp/>\</highlight></codeline>
<codeline lineno="1475"><highlight class="preprocessor"><sp/><sp/>template<sp/>&lt;&gt;<sp/>inline<sp/>\</highlight></codeline>
<codeline lineno="1476"><highlight class="preprocessor"><sp/><sp/>TYPE<sp/>arg(const<sp/>char*<sp/>arg)<sp/>\</highlight></codeline>
<codeline lineno="1477"><highlight class="preprocessor"><sp/><sp/>{<sp/>\</highlight></codeline>
<codeline lineno="1478"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>return<sp/>long_long_&lt;TYPE&gt;(arg);<sp/>\</highlight></codeline>
<codeline lineno="1479"><highlight class="preprocessor"><sp/><sp/>}</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1480"><highlight class="normal"></highlight></codeline>
<codeline lineno="1481"><highlight class="normal"><sp/><sp/><ref refid="argagg_8hpp_1a0191d1a4f98481f2ae008b7cf1df0335" kindref="member">DEFINE_CONVERSION_FROM_LONG_LONG_</ref>(</highlight><highlight class="keywordtype">long</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">long</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1482"><highlight class="normal"><sp/><sp/><ref refid="argagg_8hpp_1a0191d1a4f98481f2ae008b7cf1df0335" kindref="member">DEFINE_CONVERSION_FROM_LONG_LONG_</ref>(</highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">long</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">long</highlight><highlight class="normal">)</highlight></codeline>
<codeline lineno="1483"><highlight class="normal"></highlight></codeline>
<codeline lineno="1484"><highlight class="normal"></highlight><highlight class="preprocessor">#undef<sp/>DEFINE_CONVERSION_FROM_LONG_LONG_</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1485"><highlight class="normal"></highlight></codeline>
<codeline lineno="1486"><highlight class="normal"></highlight></codeline>
<codeline lineno="1487"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="1488" refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" refkind="member"><highlight class="normal"><sp/><sp/>T<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>)</highlight></codeline>
<codeline lineno="1489"><highlight class="normal"><sp/><sp/>{</highlight></codeline>
<codeline lineno="1490"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1convert_1_1converter_1a9ae0fc72243699c930acdb3a12fcb550" kindref="member">converter&lt;T&gt;::convert</ref>(<ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>);</highlight></codeline>
<codeline lineno="1491"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1492"><highlight class="normal"></highlight></codeline>
<codeline lineno="1493"><highlight class="normal"></highlight></codeline>
<codeline lineno="1494"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;<sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1495" refid="namespaceargagg_1_1convert_1a6bd8a947906c717e3a3d05d9e6afc712" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>)</highlight></codeline>
<codeline lineno="1496"><highlight class="normal"><sp/><sp/>{</highlight></codeline>
<codeline lineno="1497"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">argagg::convert::arg&lt;int&gt;</ref>(<ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>)<sp/>!=<sp/>0;</highlight></codeline>
<codeline lineno="1498"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1499"><highlight class="normal"></highlight></codeline>
<codeline lineno="1500"><highlight class="normal"></highlight></codeline>
<codeline lineno="1501"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;<sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1502" refid="namespaceargagg_1_1convert_1af814dd6995297244843e4bf42a08b4d7" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>)</highlight></codeline>
<codeline lineno="1503"><highlight class="normal"><sp/><sp/>{</highlight></codeline>
<codeline lineno="1504"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>endptr<sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1505"><highlight class="normal"><sp/><sp/><sp/><sp/>errno<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="1506"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>ret<sp/>=<sp/><ref refid="cpp/string/byte/strtof" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::strtof</ref>(<ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>,<sp/>&amp;endptr);</highlight></codeline>
<codeline lineno="1507"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(endptr<sp/>==<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>)<sp/>{</highlight></codeline>
<codeline lineno="1508"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/io/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostringstream</ref><sp/>msg;</highlight></codeline>
<codeline lineno="1509"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>msg<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;unable<sp/>to<sp/>convert<sp/>argument<sp/>to<sp/>integer:<sp/>\&quot;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref><sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;\&quot;&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1510"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="cpp/error/invalid_argument" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::invalid_argument</ref>(msg.<ref refid="cpp/io/basic_ostringstream/str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">str</ref>());</highlight></codeline>
<codeline lineno="1511"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1512"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(errno<sp/>==<sp/>ERANGE)<sp/>{</highlight></codeline>
<codeline lineno="1513"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="cpp/error/out_of_range" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::out_of_range</ref>(</highlight><highlight class="stringliteral">&quot;argument<sp/>numeric<sp/>value<sp/>out<sp/>of<sp/>range&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1514"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1515"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="1516"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1517"><highlight class="normal"></highlight></codeline>
<codeline lineno="1518"><highlight class="normal"></highlight></codeline>
<codeline lineno="1519"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;<sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1520" refid="namespaceargagg_1_1convert_1af8e8d1efc2e74e04f9b8f7c4ba5e0fe6" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>)</highlight></codeline>
<codeline lineno="1521"><highlight class="normal"><sp/><sp/>{</highlight></codeline>
<codeline lineno="1522"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>endptr<sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1523"><highlight class="normal"><sp/><sp/><sp/><sp/>errno<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="1524"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>ret<sp/>=<sp/><ref refid="cpp/string/byte/strtof" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::strtod</ref>(<ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>,<sp/>&amp;endptr);</highlight></codeline>
<codeline lineno="1525"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(endptr<sp/>==<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>)<sp/>{</highlight></codeline>
<codeline lineno="1526"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/io/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostringstream</ref><sp/>msg;</highlight></codeline>
<codeline lineno="1527"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>msg<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;unable<sp/>to<sp/>convert<sp/>argument<sp/>to<sp/>integer:<sp/>\&quot;&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref><sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;\&quot;&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1528"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="cpp/error/invalid_argument" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::invalid_argument</ref>(msg.<ref refid="cpp/io/basic_ostringstream/str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">str</ref>());</highlight></codeline>
<codeline lineno="1529"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1530"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(errno<sp/>==<sp/>ERANGE)<sp/>{</highlight></codeline>
<codeline lineno="1531"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="cpp/error/out_of_range" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::out_of_range</ref>(</highlight><highlight class="stringliteral">&quot;argument<sp/>numeric<sp/>value<sp/>out<sp/>of<sp/>range&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1532"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1533"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="1534"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1535"><highlight class="normal"></highlight></codeline>
<codeline lineno="1536"><highlight class="normal"></highlight></codeline>
<codeline lineno="1537"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;<sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1538" refid="namespaceargagg_1_1convert_1abe521ecc7ea6ade10bfdc22a8ac35250" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>)</highlight></codeline>
<codeline lineno="1539"><highlight class="normal"><sp/><sp/>{</highlight></codeline>
<codeline lineno="1540"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>;</highlight></codeline>
<codeline lineno="1541"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1542"><highlight class="normal"></highlight></codeline>
<codeline lineno="1543"><highlight class="normal"></highlight></codeline>
<codeline lineno="1544"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;<sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1545" refid="namespaceargagg_1_1convert_1aa541be13778945d54dcfa232ca00c1cd" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref><sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>)</highlight></codeline>
<codeline lineno="1546"><highlight class="normal"><sp/><sp/>{</highlight></codeline>
<codeline lineno="1547"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>(<ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">arg</ref>);</highlight></codeline>
<codeline lineno="1548"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1549"><highlight class="normal"></highlight></codeline>
<codeline lineno="1550"><highlight class="normal"></highlight></codeline>
<codeline lineno="1551"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="1552" refid="namespaceargagg_1_1convert_1a2624aa278ddbcde5062f46f3f7d51401" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="namespaceargagg_1_1convert_1a2624aa278ddbcde5062f46f3f7d51401" kindref="member">parse_next_component</ref>(</highlight></codeline>
<codeline lineno="1553"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*&amp;<sp/>s,</highlight></codeline>
<codeline lineno="1554"><highlight class="normal"><sp/><sp/><sp/><sp/>T&amp;<sp/>out_arg,</highlight></codeline>
<codeline lineno="1555"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>delim)</highlight></codeline>
<codeline lineno="1556"><highlight class="normal"><sp/><sp/>{</highlight></codeline>
<codeline lineno="1557"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">*<sp/>begin<sp/>=<sp/>s;</highlight></codeline>
<codeline lineno="1558"><highlight class="normal"><sp/><sp/><sp/><sp/>s<sp/>=<sp/><ref refid="cpp/string/byte/strchr" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::strchr</ref>(s,<sp/>delim);</highlight></codeline>
<codeline lineno="1559"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(s<sp/>==<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="1560"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref><sp/>arg_str(begin);</highlight></codeline>
<codeline lineno="1561"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>out_arg<sp/>=<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">argagg::convert::arg&lt;T&gt;</ref>(arg_str.<ref refid="cpp/string/basic_string/c_str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">c_str</ref>());</highlight></codeline>
<codeline lineno="1562"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1563"><highlight class="normal"><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="1564"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref><sp/>arg_str(begin,<sp/></highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="normal"><ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref></highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(s<sp/>-<sp/>begin));</highlight></codeline>
<codeline lineno="1565"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>out_arg<sp/>=<sp/><ref refid="namespaceargagg_1_1convert_1acbfa15a31486143d3c2032b4ac78fa96" kindref="member">argagg::convert::arg&lt;T&gt;</ref>(arg_str.<ref refid="cpp/string/basic_string/c_str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">c_str</ref>());</highlight></codeline>
<codeline lineno="1566"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>s<sp/>+=<sp/>1;</highlight></codeline>
<codeline lineno="1567"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1568"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1569"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1570"><highlight class="normal"></highlight></codeline>
<codeline lineno="1571"><highlight class="normal"></highlight></codeline>
<codeline lineno="1572"><highlight class="normal">}<sp/></highlight><highlight class="comment">//<sp/>namespace<sp/>convert</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1573"><highlight class="normal"></highlight></codeline>
<codeline lineno="1574"><highlight class="normal"></highlight></codeline>
<codeline lineno="1575"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1576" refid="structargagg_1_1fmt__ostream_1ad726515e75c97baeab0db14ff82d2db5" refkind="member"><highlight class="normal"><ref refid="structargagg_1_1fmt__ostream_1ad726515e75c97baeab0db14ff82d2db5" kindref="member">fmt_ostream::fmt_ostream</ref>(<ref refid="cpp/io/basic_ostream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostream</ref>&amp;<sp/><ref refid="structargagg_1_1fmt__ostream_1a1ce78b84202689cc34781b98eec1050b" kindref="member">output</ref>)</highlight></codeline>
<codeline lineno="1577"><highlight class="normal">:<sp/><ref refid="namespacestd" kindref="compound">std</ref>::<ref refid="cpp/io/basic_ostringstream/basic_ostringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">ostringstream</ref>(),<sp/><ref refid="structargagg_1_1fmt__ostream_1a1ce78b84202689cc34781b98eec1050b" kindref="member">output</ref>(<ref refid="structargagg_1_1fmt__ostream_1a1ce78b84202689cc34781b98eec1050b" kindref="member">output</ref>)</highlight></codeline>
<codeline lineno="1578"><highlight class="normal">{</highlight></codeline>
<codeline lineno="1579"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1580"><highlight class="normal"></highlight></codeline>
<codeline lineno="1581"><highlight class="normal"></highlight></codeline>
<codeline lineno="1582"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1583" refid="structargagg_1_1fmt__ostream_1a64eb8576f2a4fe32162f52dac354ad8c" refkind="member"><highlight class="normal"><ref refid="structargagg_1_1fmt__ostream_1a64eb8576f2a4fe32162f52dac354ad8c" kindref="member">fmt_ostream::~fmt_ostream</ref>()</highlight></codeline>
<codeline lineno="1584"><highlight class="normal">{</highlight></codeline>
<codeline lineno="1585"><highlight class="normal"><sp/><sp/><ref refid="structargagg_1_1fmt__ostream_1a1ce78b84202689cc34781b98eec1050b" kindref="member">output</ref><sp/>&lt;&lt;<sp/><ref refid="namespaceargagg_1ae9d8a0de66b416e737bddcb36a9eddf0" kindref="member">fmt_string</ref>(this-&gt;<ref refid="cpp/io/basic_ostringstream/str" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">str</ref>());</highlight></codeline>
<codeline lineno="1586"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1587"><highlight class="normal"></highlight></codeline>
<codeline lineno="1588"><highlight class="normal"></highlight></codeline>
<codeline lineno="1589"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1590" refid="namespaceargagg_1ad6e47329f6a56f6e45506858c12934af" refkind="member"><highlight class="normal"><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref><sp/><ref refid="namespaceargagg_1ad6e47329f6a56f6e45506858c12934af" kindref="member">lstrip</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>text)</highlight></codeline>
<codeline lineno="1591"><highlight class="normal">{</highlight></codeline>
<codeline lineno="1592"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>result<sp/>=<sp/>text;</highlight></codeline>
<codeline lineno="1593"><highlight class="normal"></highlight></codeline>
<codeline lineno="1594"><highlight class="normal"><sp/><sp/>result.<ref refid="cpp/string/basic_string/erase" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">erase</ref>(</highlight></codeline>
<codeline lineno="1595"><highlight class="normal"><sp/><sp/><sp/><sp/>result.begin(),</highlight></codeline>
<codeline lineno="1596"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="cpp/algorithm/find" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::find_if</ref>(</highlight></codeline>
<codeline lineno="1597"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>result.begin(),</highlight></codeline>
<codeline lineno="1598"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>result.end(),</highlight></codeline>
<codeline lineno="1599"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>[](</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ch)<sp/>{<sp/>return<sp/>!std::isspace(ch);<sp/>}));</highlight></codeline>
<codeline lineno="1600"><highlight class="normal"></highlight></codeline>
<codeline lineno="1601"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result;</highlight></codeline>
<codeline lineno="1602"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1603"><highlight class="normal"></highlight></codeline>
<codeline lineno="1604"><highlight class="normal"></highlight></codeline>
<codeline lineno="1605"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1606" refid="namespaceargagg_1a885d9c37c366b02bda073ab905318c4a" refkind="member"><highlight class="normal"><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref><sp/><ref refid="namespaceargagg_1a885d9c37c366b02bda073ab905318c4a" kindref="member">rstrip</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>text)</highlight></codeline>
<codeline lineno="1607"><highlight class="normal">{</highlight></codeline>
<codeline lineno="1608"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>result<sp/>=<sp/>text;</highlight></codeline>
<codeline lineno="1609"><highlight class="normal"></highlight></codeline>
<codeline lineno="1610"><highlight class="normal"><sp/><sp/>result.<ref refid="cpp/string/basic_string/erase" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">erase</ref>(</highlight></codeline>
<codeline lineno="1611"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="cpp/algorithm/find" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::find_if</ref>(</highlight></codeline>
<codeline lineno="1612"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>result.rbegin(),</highlight></codeline>
<codeline lineno="1613"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>result.rend(),</highlight></codeline>
<codeline lineno="1614"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>[](</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ch)<sp/>{<sp/>return<sp/>!std::isspace(ch);<sp/>}).base(),</highlight></codeline>
<codeline lineno="1615"><highlight class="normal"><sp/><sp/><sp/><sp/>result.end());</highlight></codeline>
<codeline lineno="1616"><highlight class="normal"></highlight></codeline>
<codeline lineno="1617"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result;</highlight></codeline>
<codeline lineno="1618"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1619"><highlight class="normal"></highlight></codeline>
<codeline lineno="1620"><highlight class="normal"></highlight></codeline>
<codeline lineno="1621"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1622" refid="namespaceargagg_1acbc83fd3fd06fbac5b484ee6c1c82a38" refkind="member"><highlight class="normal"><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref><sp/><ref refid="namespaceargagg_1acbc83fd3fd06fbac5b484ee6c1c82a38" kindref="member">construct_line</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>indent,</highlight></codeline>
<codeline lineno="1623"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>contents)</highlight></codeline>
<codeline lineno="1624"><highlight class="normal">{</highlight></codeline>
<codeline lineno="1625"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>indent<sp/>+<sp/><ref refid="namespaceargagg_1a885d9c37c366b02bda073ab905318c4a" kindref="member">rstrip</ref>(contents)<sp/>+<sp/></highlight><highlight class="stringliteral">&quot;\n&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1626"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1627"><highlight class="normal"></highlight></codeline>
<codeline lineno="1628"><highlight class="normal"></highlight></codeline>
<codeline lineno="1633"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1634" refid="namespaceargagg_1af3952e65af14a27e38b23a182e5f73e9" refkind="member"><highlight class="normal"><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref><sp/><ref refid="namespaceargagg_1af3952e65af14a27e38b23a182e5f73e9" kindref="member">wrap_line</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>single_line,</highlight></codeline>
<codeline lineno="1635"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/>wrap_width)</highlight></codeline>
<codeline lineno="1636"><highlight class="normal">{</highlight></codeline>
<codeline lineno="1637"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>indentation_spaces<sp/>=<sp/>single_line.<ref refid="cpp/string/basic_string/find_first_not_of" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">find_first_not_of</ref>(</highlight><highlight class="stringliteral">&quot;<sp/>&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1638"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(indentation_spaces<sp/>==<sp/>std::string::npos)<sp/>{</highlight></codeline>
<codeline lineno="1639"><highlight class="normal"><sp/><sp/><sp/><sp/>indentation_spaces<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="1640"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1641"><highlight class="normal"></highlight></codeline>
<codeline lineno="1642"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>line<sp/>=<sp/><ref refid="namespaceargagg_1ad6e47329f6a56f6e45506858c12934af" kindref="member">lstrip</ref>(single_line);</highlight></codeline>
<codeline lineno="1643"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>indent<sp/>=<sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>(indentation_spaces,<sp/></highlight><highlight class="charliteral">&apos;<sp/>&apos;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="1644"><highlight class="normal"></highlight></codeline>
<codeline lineno="1645"><highlight class="normal"><sp/><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref><sp/>result;</highlight></codeline>
<codeline lineno="1646"><highlight class="normal"></highlight></codeline>
<codeline lineno="1647"><highlight class="normal"><sp/><sp/><ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/>position<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="1648"><highlight class="normal"><sp/><sp/><ref refid="cpp/types/size_t" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::size_t</ref><sp/>line_start<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="1649"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keyword">true</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="1650"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>new_position<sp/>=<sp/>line.find_first_of(</highlight><highlight class="stringliteral">&quot;<sp/>&quot;</highlight><highlight class="normal">,<sp/>position);</highlight></codeline>
<codeline lineno="1651"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(new_position<sp/>==<sp/>std::string::npos)<sp/>{</highlight></codeline>
<codeline lineno="1652"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1653"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1654"><highlight class="normal"></highlight></codeline>
<codeline lineno="1655"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(new_position<sp/>+<sp/>indentation_spaces<sp/>&gt;<sp/>line_start<sp/>+<sp/>wrap_width)<sp/>{</highlight></codeline>
<codeline lineno="1656"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>+=<sp/><ref refid="namespaceargagg_1acbc83fd3fd06fbac5b484ee6c1c82a38" kindref="member">construct_line</ref>(</highlight></codeline>
<codeline lineno="1657"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>indent,<sp/>line.substr(line_start,<sp/>position<sp/>-<sp/>line_start<sp/>-<sp/>1));</highlight></codeline>
<codeline lineno="1658"><highlight class="normal"></highlight></codeline>
<codeline lineno="1659"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>line_start<sp/>=<sp/>position;</highlight></codeline>
<codeline lineno="1660"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1661"><highlight class="normal"></highlight></codeline>
<codeline lineno="1662"><highlight class="normal"><sp/><sp/><sp/><sp/>position<sp/>=<sp/>new_position<sp/>+<sp/>1;</highlight></codeline>
<codeline lineno="1663"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1664"><highlight class="normal"></highlight></codeline>
<codeline lineno="1665"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result<sp/>+<sp/><ref refid="namespaceargagg_1acbc83fd3fd06fbac5b484ee6c1c82a38" kindref="member">construct_line</ref>(indent,<sp/>line.substr(line_start));</highlight></codeline>
<codeline lineno="1666"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1667"><highlight class="normal"></highlight></codeline>
<codeline lineno="1668"><highlight class="normal"></highlight></codeline>
<codeline lineno="1669"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1670" refid="namespaceargagg_1ae9d8a0de66b416e737bddcb36a9eddf0" refkind="member"><highlight class="normal"><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref><sp/><ref refid="namespaceargagg_1ae9d8a0de66b416e737bddcb36a9eddf0" kindref="member">fmt_string</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref>&amp;<sp/>s)</highlight></codeline>
<codeline lineno="1671"><highlight class="normal">{</highlight></codeline>
<codeline lineno="1672"><highlight class="normal"><sp/><sp/><ref refid="cpp/io/basic_stringstream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::stringstream</ref><sp/>ss(s);</highlight></codeline>
<codeline lineno="1673"><highlight class="normal"><sp/><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref><sp/>line;</highlight></codeline>
<codeline lineno="1674"><highlight class="normal"></highlight></codeline>
<codeline lineno="1675"><highlight class="normal"><sp/><sp/><ref refid="cpp/string/basic_string" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::string</ref><sp/>result;</highlight></codeline>
<codeline lineno="1676"><highlight class="normal"></highlight></codeline>
<codeline lineno="1677"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Use<sp/>default<sp/>width<sp/>of<sp/>`fmt`.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1678"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>column_width<sp/>=<sp/>75;</highlight></codeline>
<codeline lineno="1679"><highlight class="normal"></highlight></codeline>
<codeline lineno="1680"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(<ref refid="cpp/string/basic_string/getline" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::getline</ref>(ss,<sp/>line,<sp/></highlight><highlight class="charliteral">&apos;\n&apos;</highlight><highlight class="normal">))<sp/>{</highlight></codeline>
<codeline lineno="1681"><highlight class="normal"><sp/><sp/><sp/><sp/>result<sp/>+=<sp/><ref refid="namespaceargagg_1af3952e65af14a27e38b23a182e5f73e9" kindref="member">wrap_line</ref>(line,<sp/>column_width);</highlight></codeline>
<codeline lineno="1682"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1683"><highlight class="normal"></highlight></codeline>
<codeline lineno="1684"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result;</highlight></codeline>
<codeline lineno="1685"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1686"><highlight class="normal"></highlight></codeline>
<codeline lineno="1687"><highlight class="normal"></highlight></codeline>
<codeline lineno="1688"><highlight class="normal">}<sp/></highlight><highlight class="comment">//<sp/>namespace<sp/>argagg</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1689"><highlight class="normal"></highlight></codeline>
<codeline lineno="1690"><highlight class="normal"></highlight></codeline>
<codeline lineno="1691"><highlight class="normal"></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1692" refid="argagg_8hpp_1ab740a1ddcecc92f1ab7da23151b5f561" refkind="member"><highlight class="normal"><ref refid="cpp/io/basic_ostream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostream</ref>&amp;<sp/><ref refid="argagg_8hpp_1ab740a1ddcecc92f1ab7da23151b5f561" kindref="member">operator &lt;&lt; </ref>(<ref refid="cpp/io/basic_ostream" kindref="compound" external="/tmp/pkg/src/argagg-0.4.7/doc/cppreference-doxygen-web.tag.xml">std::ostream</ref>&amp;<sp/>os,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structargagg_1_1parser" kindref="compound">argagg::parser</ref>&amp;<sp/>x)</highlight></codeline>
<codeline lineno="1693"><highlight class="normal">{</highlight></codeline>
<codeline lineno="1694"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keyword">auto</highlight><highlight class="normal">&amp;<sp/>definition<sp/>:<sp/>x.<ref refid="structargagg_1_1parser_1a4f434651f34fad5c205c0159c24f7573" kindref="member">definitions</ref>)<sp/>{</highlight></codeline>
<codeline lineno="1695"><highlight class="normal"><sp/><sp/><sp/><sp/>os<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;<sp/><sp/><sp/><sp/>&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1696"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keyword">auto</highlight><highlight class="normal">&amp;<sp/>flag<sp/>:<sp/>definition.flags)<sp/>{</highlight></codeline>
<codeline lineno="1697"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>os<sp/>&lt;&lt;<sp/>flag;</highlight></codeline>
<codeline lineno="1698"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(flag<sp/>!=<sp/>definition.flags.back())<sp/>{</highlight></codeline>
<codeline lineno="1699"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>os<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;,<sp/>&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1700"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1701"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="1702"><highlight class="normal"><sp/><sp/><sp/><sp/>os<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;\n<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;</highlight><highlight class="normal"><sp/>&lt;&lt;<sp/>definition.help<sp/>&lt;&lt;<sp/></highlight><highlight class="charliteral">&apos;\n&apos;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="1703"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="1704"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>os;</highlight></codeline>
<codeline lineno="1705"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1706"><highlight class="normal"></highlight></codeline>
<codeline lineno="1707"><highlight class="normal"></highlight></codeline>
<codeline lineno="1708"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/></highlight><highlight class="comment">//<sp/>ARGAGG_ARGAGG_ARGAGG_HPP</highlight><highlight class="normal"></highlight></codeline>
    </programlisting>
    <location file="/tmp/pkg/src/argagg-0.4.7/include/argagg/argagg.hpp"/>
  </compounddef>
</doxygen>
