<?xml version="1.0" encoding="UTF-8"?>
<mrdocs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rnc">
<namespace>
  <kind>namespace</kind>
  <id>4ZrjxJnU1LA5xSyrWMNuXTvSYKwt</id>
  <extraction>regular</extraction>
  <members>
    <namespaces>312vFTwJYfHbDRypoq27oA29tH3J 2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</namespaces>
  </members>
</namespace>
<namespace>
  <name>beman</name>
  <loc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>20</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>75</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>94</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>namespace</kind>
  <id>312vFTwJYfHbDRypoq27oA29tH3J</id>
  <extraction>regular</extraction>
  <parent>4ZrjxJnU1LA5xSyrWMNuXTvSYKwt</parent>
  <members>
    <namespaces>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</namespaces>
  </members>
</namespace>
<namespace>
  <name>optional</name>
  <loc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>20</lineNumber>
        <columnNumber>16</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>75</lineNumber>
        <columnNumber>16</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>94</lineNumber>
        <columnNumber>16</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>namespace</kind>
  <id>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</id>
  <extraction>regular</extraction>
  <parent>312vFTwJYfHbDRypoq27oA29tH3J</parent>
  <members>
    <namespaces>4BdL6JgKVyJV9JpB6oUPEiayxzA5</namespaces>
    <records>3WbUSV5UPtvyUHwt9ZyVus7fuz91 3AHKaMhiP2J4hfuP4o1BW8ujCUpJ 3Nie2BwnXWmaCCfW7FUhaxQLb3UG stKSn11E1qjWG8dGch9b86RSgUw 2S5PshpnD9q3YtvvanJM6qPV2vCX</records>
    <functions>WHRDDnL3bYrhCQRdJ2UfRFHkWov 2tfXN82M5cmUZMwdfrwBqfuUUzr4 xRZRsmPQdTViYcrE7vYCAGrf3u9 3sxkkivFjQz24e9QuRG1yeZ6D56y 2fQme5Zfs2yE4F1D7R6zmeya5Mpk 2F6uJuMhg22HUKzg5FKkbGy7Sd7T 2CWjWZ8EKkqe4dEw6GYY9A9mzSSn 35nWvgNB1tgMcGXGCyPBu6BYPxC9 wJuLzwMRaVYw4rWw3ggVYZMjcsQ</functions>
    <variables>ctwYE4fu42JWMPinWAy1ftKZh4k 2Hpd2TcJ1vTsWuNVtSbDCVjY9Q1C</variables>
    <concepts>4SeFhEaj8BfXQTn7keHmdx7qpTPP</concepts>
  </members>
</namespace>
<namespace>
  <name>detail</name>
  <loc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>22</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>95</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>256</lineNumber>
        <columnNumber>1</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1484</lineNumber>
        <columnNumber>1</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>namespace</kind>
  <id>4BdL6JgKVyJV9JpB6oUPEiayxzA5</id>
  <extraction>implementation-defined</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>*</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>END [optional.syn]</literal>
        </text>
      </children>
    </brief>
  </doc>
  <members>
    <namespaces>YyQ5mgueuDQDsdxM3B6oQ4p5naU</namespaces>
    <typedefs>32fNgULtX5ozBZX3kTt6QiHwiGZS</typedefs>
    <records>7aFJPXcrUCV7iTUPjhXnyTduFzf</records>
  </members>
</namespace>
<record>
  <name>bad_optional_access</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>798</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>138</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>record</kind>
  <id>3WbUSV5UPtvyUHwt9ZyVus7fuz91</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Exception thrown when trying to access the value of an empty optional</literal>
        </text>
      </children>
    </brief>
  </doc>
  <keyKind>class</keyKind>
  <bases>
    <baseInfo>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3HYmLHW9zYHnfnwVRK2doFGQ6gxM</id>
              <identifier>exception</identifier>
              <prefix>
                <identifier>
                  <kind>identifier</kind>
                  <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
                  <identifier>std</identifier>
                </identifier>
              </prefix>
            </identifier>
          </name>
        </named>
      </type>
      <access>public</access>
    </baseInfo>
  </bases>
  <interface>
    <public>
      <functions>vCAZLGsRubTM2AVErgToW9cMUSD 4DqLbdWN9r5HXuXsuvxS2DFLikEA 3K3WLjBAkM4NeFKrts3KXNjjH4RH</functions>
    </public>
  </interface>
</record>
<function>
  <name>bad_optional_access</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>804</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>vCAZLGsRubTM2AVErgToW9cMUSD</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>3WbUSV5UPtvyUHwt9ZyVus7fuz91</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Construct a new bad optional access object</literal>
        </text>
      </children>
    </brief>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <funcClass>constructor</funcClass>
  <isDefaulted/>
  <isExplicitlyDefaulted/>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<overloads>
  <name>operator=</name>
  <loc>
    <defLoc>
      <shortPath>bits/exception.h</shortPath>
      <lineNumber>68</lineNumber>
      <columnNumber>5</columnNumber>
    </defLoc>
  </loc>
  <kind>overloads</kind>
  <id>4DqLbdWN9r5HXuXsuvxS2DFLikEA</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>3WbUSV5UPtvyUHwt9ZyVus7fuz91</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Assignment operators</literal>
        </text>
      </children>
    </brief>
  </doc>
  <funcClass>normal</funcClass>
  <overloadedOperator>=</overloadedOperator>
  <members>42iL563nmXRNEtkiXVhfvGoaidHD QxnYngMCtTGY4PjYBrrEJ7Xery5</members>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3HYmLHW9zYHnfnwVRK2doFGQ6gxM</id>
              <identifier>exception</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
</overloads>
<function>
  <name>operator=</name>
  <loc>
    <defLoc>
      <shortPath>bits/exception.h</shortPath>
      <lineNumber>68</lineNumber>
      <columnNumber>5</columnNumber>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>42iL563nmXRNEtkiXVhfvGoaidHD</id>
  <access>public</access>
  <extraction>regular</extraction>
  <isCopyFromInherited/>
  <parent>3WbUSV5UPtvyUHwt9ZyVus7fuz91</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Assignment operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Base class for all library exceptions.</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to copy assign from</literal>
          </text>
        </children>
        <name>value</name>
      </param>
    </params>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3HYmLHW9zYHnfnwVRK2doFGQ6gxM</id>
              <identifier>exception</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <id>3HYmLHW9zYHnfnwVRK2doFGQ6gxM</id>
                  <identifier>exception</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>value</name>
    </param>
  </params>
  <funcClass>normal</funcClass>
  <isDefaulted/>
  <isExplicitlyDefaulted/>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>=</overloadedOperator>
  <isRecordMethod/>
</function>
<function>
  <name>operator=</name>
  <loc>
    <defLoc>
      <shortPath>bits/exception.h</shortPath>
      <lineNumber>70</lineNumber>
      <columnNumber>5</columnNumber>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>QxnYngMCtTGY4PjYBrrEJ7Xery5</id>
  <access>public</access>
  <extraction>regular</extraction>
  <isCopyFromInherited/>
  <parent>3WbUSV5UPtvyUHwt9ZyVus7fuz91</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Assignment operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Base class for all library exceptions.</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to move assign from</literal>
          </text>
        </children>
        <name>value</name>
      </param>
    </params>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3HYmLHW9zYHnfnwVRK2doFGQ6gxM</id>
              <identifier>exception</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <id>3HYmLHW9zYHnfnwVRK2doFGQ6gxM</id>
                  <identifier>exception</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>value</name>
    </param>
  </params>
  <funcClass>normal</funcClass>
  <isDefaulted/>
  <isExplicitlyDefaulted/>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>=</overloadedOperator>
  <isRecordMethod/>
</function>
<function>
  <name>what</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>811</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>3K3WLjBAkM4NeFKrts3KXNjjH4RH</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>3WbUSV5UPtvyUHwt9ZyVus7fuz91</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Get the error message for bad optional access</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>const char*</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <pointer>
      <kind>pointer</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <isConst/>
          <name>
            <identifier>
              <kind>identifier</kind>
              <identifier>char</identifier>
            </identifier>
          </name>
          <fundamentalType>char</fundamentalType>
        </named>
      </pointeeType>
    </pointer>
  </returnType>
  <funcClass>normal</funcClass>
  <isRecordMethod/>
  <isVirtual/>
  <isConst/>
</function>
<record>
  <name>in_place_t</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>64</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>record</kind>
  <id>3AHKaMhiP2J4hfuP4o1BW8ujCUpJ</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Tag type for in-place construction</literal>
        </text>
      </children>
    </brief>
  </doc>
  <keyKind>struct</keyKind>
  <interface>
    <public>
      <functions>uiHsWhrrjH1adzHS7it64VSLXE6</functions>
    </public>
  </interface>
</record>
<function>
  <name>in_place_t</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>65</lineNumber>
      <columnNumber>5</columnNumber>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>uiHsWhrrjH1adzHS7it64VSLXE6</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>3AHKaMhiP2J4hfuP4o1BW8ujCUpJ</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Default constructor</literal>
        </text>
      </children>
    </brief>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <funcClass>constructor</funcClass>
  <isDefaulted/>
  <isExplicitlyDefaulted/>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<record>
  <name>nullopt_t</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>113</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>record</kind>
  <id>3Nie2BwnXWmaCCfW7FUhaxQLb3UG</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Tag type for empty optional construction</literal>
        </text>
      </children>
    </brief>
  </doc>
  <keyKind>struct</keyKind>
  <interface>
    <public>
      <enums>3bFnwNRJqjbPRYFe2GvGyeXxTUuC</enums>
      <functions>2tPHKDv8yuHFPqnqSr49jnziUxgt</functions>
    </public>
  </interface>
  <friends>
    <friendInfo>
      <id>3K9tenKYgxxzM4s52myAjEAaUUzo</id>
    </friendInfo>
    <friendInfo>
      <id>pNA5xLb4d5JnqxwiXfxyBBMyDfn</id>
    </friendInfo>
  </friends>
</record>
<enum>
  <name>Tag</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>117</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>enum</kind>
  <id>3bFnwNRJqjbPRYFe2GvGyeXxTUuC</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>3Nie2BwnXWmaCCfW7FUhaxQLb3UG</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Tag enum for nullopt_t construction</literal>
        </text>
      </children>
    </brief>
  </doc>
  <scoped/>
  <underlyingType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>int</identifier>
        </identifier>
      </name>
      <fundamentalType>int</fundamentalType>
    </named>
  </underlyingType>
  <constants>WzDbyab24r64UuFAMsw2bTtg2xe</constants>
</enum>
<enumConstant>
  <name>tag</name>
  <loc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>117</lineNumber>
        <columnNumber>22</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>enum-constant</kind>
  <id>WzDbyab24r64UuFAMsw2bTtg2xe</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>3bFnwNRJqjbPRYFe2GvGyeXxTUuC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>the tag value for nullopt_t::Tag</literal>
        </text>
      </children>
    </brief>
  </doc>
</enumConstant>
<function>
  <name>nullopt_t</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>124</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>2tPHKDv8yuHFPqnqSr49jnziUxgt</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>3Nie2BwnXWmaCCfW7FUhaxQLb3UG</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>constexpr for nullopt_t to be literal.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Construct a new nullopt_t object</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to construct from</literal>
          </text>
        </children>
        <name>value</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3bFnwNRJqjbPRYFe2GvGyeXxTUuC</id>
              <identifier>Tag</identifier>
            </identifier>
          </name>
        </named>
      </type>
      <name>value</name>
    </param>
  </params>
  <funcClass>constructor</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<record>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>295</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>76</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>record</kind>
  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Optional Objects</literal>
        </text>
      </children>
    </brief>
    <related>
      <reference>
        <kind>reference</kind>
        <literal>make_optional</literal>
        <id>2HWj8myuJYLPyKdUmDmaWtKqcJE9</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>operator!=</literal>
        <id>41t8s3X1tRdoWV4FAUG3mYYzhsZF</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>operator!=</literal>
        <id>4H6YjW86723UUZf7RvG74wYyn1mr</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>operator&lt;</literal>
        <id>2zFuGayQuKGeix8iB5yv2SGCQAQV</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>operator&lt;</literal>
        <id>3xhdkTvptaGFzcEhHaDFziBokcpk</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>operator&lt;=</literal>
        <id>JHWZFG1QuJm3YdAUJw2sqb23Bdd</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>operator&lt;=</literal>
        <id>4U67355ASMmohCHv9a9WgP4JP6QC</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>operator&lt;=&gt;</literal>
        <id>2CXMJgmqh56x65vbspGAqs13WT3f</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>operator&lt;=&gt;</literal>
        <id>2qWBTqSQJpUKPd4ixiJgTsZjQYxu</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>operator&lt;=&gt;</literal>
        <id>3CXfxZXbwPmdooJDcc1wvMNdxsCZ</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>operator==</literal>
        <id>z5XJ5i6wDZmEtJCnpvjS2eXcJN</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>operator==</literal>
        <id>2tYqmitmjQgK3JELrRLKmtwAyLq2</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>operator==</literal>
        <id>3663xxcXAQyFT578vBfWWvUTzhfg</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>operator&gt;</literal>
        <id>2rGjnZebejHDqy2phPGBsPf8skpB</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>operator&gt;</literal>
        <id>3wacTpwJCF5K7kVDcfF7UzdBtxDV</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>operator&gt;=</literal>
        <id>A5X3anskMAn5KDECh8rMF7gMwN7</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>operator&gt;=</literal>
        <id>4PVJuukyNqLdAtaH2Wo4FdC3C4aL</id>
      </reference>
      <reference>
        <kind>reference</kind>
        <literal>swap</literal>
        <id>2tfXN82M5cmUZMwdfrwBqfuUUzr4</id>
      </reference>
    </related>
  </doc>
  <keyKind>class</keyKind>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <interface>
    <public>
      <typedefs>rUHFYUza9YeWs8TbUdxhzFZonZX 4FGoUppnVBSKSNnD7pJxTnGpkXUy 4RaWDX5ZFnHvbZmR3EaesZyw1aDx</typedefs>
      <functions>Y8ft5eV29ctGvA9aTHusSWx5et8 JbF9WT6yYgnbNBoMCFvhTuQcrhe SGUYUytx4JNd6pYsXoMGDqScr5p fF5ACkPpQk79jhxvmVAipfDAXxY 3ACntyJfPQsNjkNuVrzkoXgt4qh6 2czb7sC6p4UHb4MuDr2KjoCXGk71 KYa5cTZddEbre14h1p6gvqe3jaK 4GnJgyvVkvzFMVhTpHxESdyKBvV1 hYNCqe2QfFv6mwwmBFzxZPg9Q7Y 35LHNFu87AwQQdmC7uLbyd5ME4BA QwDhffdWsPjwxLB7Fp7V5WLCG6B 2XEd3QFK4Fy8RHFU2y7L4mrhJj3C f8qmbihvWQRBuQcT8k3SJD43bSw 2xYREWVXyWepitcZmRRNNU66CtpH Znvot81FM9xNjJWus6taRqB98Be pUzWCiZ2aPCqMofzuCVzjdXUBUX 42JqdxWxq4raWhgtS7cYNWJ6jwEz</functions>
      <variables>2Xxofqmwwzz7wrc7YvgnuHSTNigF 2XUQYcakRAdWVovwCgp82sX1AVvC</variables>
    </public>
    <private>
      <records>4Ymc3cZtgyuTGPR5xK8RPrYEwzaz</records>
    </private>
  </interface>
  <friends>
    <friendInfo>
      <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
    </friendInfo>
  </friends>
  <specializations>2S5PshpnD9q3YtvvanJM6qPV2vCX</specializations>
</record>
<typedef>
  <name>const_iterator</name>
  <loc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>320</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>typedef</kind>
  <id>rUHFYUza9YeWs8TbUdxhzFZonZX</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Since P3168R2: Give std::optional Range Support.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Type alias for the const iterator type of the optional.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <type>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>7aFJPXcrUCV7iTUPjhXnyTduFzf</id>
          <identifier>contiguous_iterator</identifier>
          <prefix>
            <identifier>
              <kind>identifier</kind>
              <id>4BdL6JgKVyJV9JpB6oUPEiayxzA5</id>
              <identifier>detail</identifier>
            </identifier>
          </prefix>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <isConst/>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <identifier>T</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                      <identifier>optional</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </type>
  <isUsing/>
</typedef>
<typedef>
  <name>iterator</name>
  <loc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>313</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>typedef</kind>
  <id>4FGoUppnVBSKSNnD7pJxTnGpkXUy</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Since P3168R2: Give std::optional Range Support.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Type alias for the iterator type of the optional.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <type>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>7aFJPXcrUCV7iTUPjhXnyTduFzf</id>
          <identifier>contiguous_iterator</identifier>
          <prefix>
            <identifier>
              <kind>identifier</kind>
              <id>4BdL6JgKVyJV9JpB6oUPEiayxzA5</id>
              <identifier>detail</identifier>
            </identifier>
          </prefix>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <identifier>T</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                      <identifier>optional</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </type>
  <isUsing/>
</typedef>
<typedef>
  <name>value_type</name>
  <loc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>306</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>typedef</kind>
  <id>4RaWDX5ZFnHvbZmR3EaesZyw1aDx</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Type alias for the value type contained in the optional.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <type>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>T</identifier>
        </identifier>
      </name>
    </named>
  </type>
  <isUsing/>
</typedef>
<overloads>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>346</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>328</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>334</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>340</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>352</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>367</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>377</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>386</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>395</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>402</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>Y8ft5eV29ctGvA9aTHusSWx5et8</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructors</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The arguments to use for in-place construction.</literal>
          </text>
        </children>
        <name>args</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The initializer list to use for in-place construction.</literal>
          </text>
        </children>
        <name>il</name>
      </param>
    </params>
  </doc>
  <funcClass>constructor</funcClass>
  <members>2RVuHdpxRugwykfUECUAHHJCV7ce B9aRXj9pX6wuTWfuyTBhoV1RDCL 26JG2fUbu8GSNFtMmotsyPhhYsNy 23P8RPeH9U6Lr9ksyVjXuW1z3inj 3ipz3caJacbg3Zh7s9SSR1Pfsc9t 4PWgA6RW8MsVby2vKzRoBpjYkcaw 2YCTmk1c953SzFrSfvJHuPkVDXM7 wHZxkWks6W36BnWknGtwA9b5WKE 8HzDPfLYxopRy5cpiQMr9Lc96kF bJCiDqEhnKCmWyykRMJFoqQ2RHp 2mqJzpN3FqxsvTfaqqvMBDAStMbh</members>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
</overloads>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>815</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>328</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2RVuHdpxRugwykfUECUAHHJCV7ce</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Default constructs an empty optional.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <funcClass>constructor</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>346</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>B9aRXj9pX6wuTWfuyTBhoV1RDCL</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Defaulted if T is trivially copy constructible.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Copy constructs the value from </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>rhs</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> if it has one.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to copy construct from</literal>
          </text>
        </children>
        <name>other</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>other</name>
    </param>
  </params>
  <funcClass>constructor</funcClass>
  <requires>std::is_copy_constructible_v&lt;T&gt; &amp;&amp; std::is_trivially_copy_constructible_v&lt;T&gt;</requires>
  <isDefaulted/>
  <isExplicitlyDefaulted/>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>821</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>340</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>26JG2fUbu8GSNFtMmotsyPhhYsNy</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Copy constructs the value from </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>rhs</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> if it has one.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to copy construct from</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <funcClass>constructor</funcClass>
  <requires>std::is_copy_constructible_v&lt;T&gt; &amp;&amp; (!std::is_trivially_copy_constructible_v&lt;T&gt;)</requires>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>861</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>395</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>23P8RPeH9U6Lr9ksyVjXuW1z3inj</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Converting copy constructor.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs the value from </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>rhs</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> if it has one.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to copy construct from</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>constructor</funcClass>
  <requires>(detail::enable_from_other&lt;T, U, const U&amp;&gt;)</requires>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>358</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>3ipz3caJacbg3Zh7s9SSR1Pfsc9t</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Defaulted if T is trivially move constructible.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Move constructs the value from </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>rhs</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> if it has one.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to move construct from</literal>
          </text>
        </children>
        <name>other</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>other</name>
    </param>
  </params>
  <funcClass>constructor</funcClass>
  <requires>std::is_move_constructible_v&lt;T&gt; &amp;&amp; std::is_trivially_move_constructible_v&lt;T&gt;</requires>
  <isDefaulted/>
  <isExplicitlyDefaulted/>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>830</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>352</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>4PWgA6RW8MsVby2vKzRoBpjYkcaw</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Move constructs the value from </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>rhs</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> if it has one.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to move construct from</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <funcClass>constructor</funcClass>
  <requires>std::is_move_constructible_v&lt;T&gt; &amp;&amp; (!std::is_trivially_move_constructible_v&lt;T&gt;)</requires>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>872</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>402</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2YCTmk1c953SzFrSfvJHuPkVDXM7</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Converting move constructor.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs the value from </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>rhs</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> if it has one.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to move construct from</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>constructor</funcClass>
  <requires>(detail::enable_from_other&lt;T, U, U &amp;&amp;&gt;)</requires>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>818</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>334</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>wHZxkWks6W36BnWknGtwA9b5WKE</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs an empty optional.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to construct from</literal>
          </text>
        </children>
        <name>value</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3Nie2BwnXWmaCCfW7FUhaxQLb3UG</id>
              <identifier>nullopt_t</identifier>
            </identifier>
          </name>
        </named>
      </type>
      <name>value</name>
    </param>
  </params>
  <funcClass>constructor</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>854</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>386</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>8HzDPfLYxopRy5cpiQMr9Lc96kF</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>If </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>u</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> is convertible to </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>T,</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> this is an explicit constructor.</literal>
          </text>
        </children>
      </paragraph>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Constructs the contained value with </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>u</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal>.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs the value from </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>u,</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> forwarding it if necessary.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to move construct from</literal>
          </text>
        </children>
        <name>u</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>U</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>u</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <default>
          <type>
            <kind>type</kind>
            <type>
              <named>
                <kind>named</kind>
                <name>
                  <identifier>
                    <kind>identifier</kind>
                    <identifier>T</identifier>
                  </identifier>
                </name>
              </named>
            </type>
          </type>
        </default>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>constructor</funcClass>
  <requires>detail::enable_forward_value&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>841</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>367</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>bJCiDqEhnKCmWyykRMJFoqQ2RHp</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Constructs the contained value in-place using the given arguments.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs the value in-place using the given arguments.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The arguments to use for in-place construction.</literal>
          </text>
        </children>
        <name>args</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3AHKaMhiP2J4hfuP4o1BW8ujCUpJ</id>
              <identifier>in_place_t</identifier>
            </identifier>
          </name>
        </named>
      </type>
    </param>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <isPackExpansion/>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>Args</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>args</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>Args</name>
        <isParameterPack/>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>constructor</funcClass>
  <requires>std::is_constructible_v&lt;T, Args...&gt;</requires>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>847</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>377</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2mqJzpN3FqxsvTfaqqvMBDAStMbh</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs the value in-place using the given arguments.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The initializer list to use for in-place construction.</literal>
          </text>
        </children>
        <name>il</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The arguments to use for in-place construction.</literal>
          </text>
        </children>
        <name>args</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3AHKaMhiP2J4hfuP4o1BW8ujCUpJ</id>
              <identifier>in_place_t</identifier>
            </identifier>
          </name>
        </named>
      </type>
    </param>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <specialization>
              <kind>specialization</kind>
              <id>474HF6bGJmJntnocv1iPAYL2crja</id>
              <identifier>initializer_list</identifier>
              <prefix>
                <identifier>
                  <kind>identifier</kind>
                  <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
                  <identifier>std</identifier>
                </identifier>
              </prefix>
              <templateArgs>
                <type>
                  <kind>type</kind>
                  <type>
                    <named>
                      <kind>named</kind>
                      <name>
                        <identifier>
                          <kind>identifier</kind>
                          <identifier>U</identifier>
                        </identifier>
                      </name>
                    </named>
                  </type>
                </type>
              </templateArgs>
            </specialization>
          </name>
        </named>
      </type>
      <name>il</name>
    </param>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <isPackExpansion/>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>Args</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>args</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>Args</name>
        <isParameterPack/>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>constructor</funcClass>
  <requires>std::is_constructible_v&lt;T, std::initializer_list&lt;U&gt;&amp;, Args&amp;&amp;...&gt;</requires>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<overloads>
  <name>~optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>411</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>418</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>JbF9WT6yYgnbNBoMCFvhTuQcrhe</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Destructors</literal>
        </text>
      </children>
    </brief>
  </doc>
  <funcClass>destructor</funcClass>
  <members>4F2obDjQPPC24DchCYcXwGk1Qfwm v4sCdty8RYa9yETnCqFFD5aEf1J</members>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
</overloads>
<function>
  <name>~optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>411</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>4F2obDjQPPC24DchCYcXwGk1Qfwm</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Destructs the optional.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <funcClass>destructor</funcClass>
  <requires>std::is_trivially_destructible_v&lt;T&gt;</requires>
  <isDefaulted/>
  <isExplicitlyDefaulted/>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>~optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>883</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>418</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>v4sCdty8RYa9yETnCqFFD5aEf1J</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Destroys the optional and its value if it has one.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <funcClass>destructor</funcClass>
  <requires>(!std::is_trivially_destructible_v&lt;T&gt;)</requires>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<overloads>
  <name>operator=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>439</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>425</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>430</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>447</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>466</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>474</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>481</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>SGUYUytx4JNd6pYsXoMGDqScr5p</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Assignment operators</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>optional&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The value to assign.</literal>
          </text>
        </children>
        <name>u</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The type of the value to assign.</literal>
          </text>
        </children>
        <name>U</name>
      </tParam>
    </tparams>
  </doc>
  <funcClass>normal</funcClass>
  <overloadedOperator>=</overloadedOperator>
  <members>gcdbs6jqJ8tMeK7i17FfJ3hfrvy 3KP6Re8cMug1s2BLHJPGFybCMb93 2nZD5WrmzvJTwDoCvnHGhMtHno5H SWoSevAjhsU188GYFYwURfCCPTn 41z2bSSqaurcR8363Mn3M43xhRpc 2gZsKSmPF9JqQXTuHfja2sseUnFy 4R8SpKb7dTBmmEfhf9Y9PTWh4bLZ 3YUqJpAiEX8zJxDmhsu87Xu9mjKH</members>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
</overloads>
<function>
  <name>operator=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>439</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>gcdbs6jqJ8tMeK7i17FfJ3hfrvy</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Copy assigns the value from </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>rhs</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> if it has one.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>optional&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to copy assign from</literal>
          </text>
        </children>
        <name>other</name>
      </param>
    </params>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
              <identifier>optional</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>other</name>
    </param>
  </params>
  <funcClass>normal</funcClass>
  <requires>std::is_copy_constructible_v&lt;T&gt; &amp;&amp; std::is_copy_assignable_v&lt;T&gt; &amp;&amp;
                     std::is_trivially_copy_constructible_v&lt;T&gt; &amp;&amp; std::is_trivially_copy_assignable_v&lt;T&gt;</requires>
  <isDefaulted/>
  <isExplicitlyDefaulted/>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>=</overloadedOperator>
  <isRecordMethod/>
</function>
<function>
  <name>operator=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>899</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>430</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3KP6Re8cMug1s2BLHJPGFybCMb93</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Copy assigns the value from </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>rhs</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> if it has one.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Reference to the current object</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to copy assign from</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <specialization>
              <kind>specialization</kind>
              <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
              <identifier>optional</identifier>
              <templateArgs>
                <type>
                  <kind>type</kind>
                  <type>
                    <named>
                      <kind>named</kind>
                      <name>
                        <identifier>
                          <kind>identifier</kind>
                          <identifier>T</identifier>
                        </identifier>
                      </name>
                    </named>
                  </type>
                </type>
              </templateArgs>
            </specialization>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <funcClass>normal</funcClass>
  <requires>std::is_copy_constructible_v&lt;T&gt; &amp;&amp; std::is_copy_assignable_v&lt;T&gt; &amp;&amp;
             (!std::is_trivially_copy_assignable_v&lt;T&gt;)</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>=</overloadedOperator>
  <isRecordMethod/>
</function>
<function>
  <name>operator=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>949</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>474</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2nZD5WrmzvJTwDoCvnHGhMtHno5H</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Converting copy assignment operator.</literal>
          </text>
        </children>
      </paragraph>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Copies the value from </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>rhs</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if there is one. Otherwise resets the contained value in </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>*this</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal>.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Assigns the contained value from </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>rhs</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> if it has one, destroying the old value if there</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Reference to the current object</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to copy assign from</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <specialization>
              <kind>specialization</kind>
              <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
              <identifier>optional</identifier>
              <templateArgs>
                <type>
                  <kind>type</kind>
                  <type>
                    <named>
                      <kind>named</kind>
                      <name>
                        <identifier>
                          <kind>identifier</kind>
                          <identifier>T</identifier>
                        </identifier>
                      </name>
                    </named>
                  </type>
                </type>
              </templateArgs>
            </specialization>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(detail::enable_assign_from_other&lt;T, U, const U&amp;&gt;)</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>=</overloadedOperator>
  <isRecordMethod/>
</function>
<function>
  <name>operator=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>454</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>SWoSevAjhsU188GYFYwURfCCPTn</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Move assigns the value from </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>rhs</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> if it has one.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Reference to the current object</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to move assign from</literal>
          </text>
        </children>
        <name>other</name>
      </param>
    </params>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
              <identifier>optional</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>other</name>
    </param>
  </params>
  <funcClass>normal</funcClass>
  <requires>std::is_move_constructible_v&lt;T&gt; &amp;&amp; std::is_move_assignable_v&lt;T&gt; &amp;&amp;
                     std::is_trivially_move_constructible_v&lt;T&gt; &amp;&amp; std::is_trivially_move_assignable_v&lt;T&gt;</requires>
  <isDefaulted/>
  <isExplicitlyDefaulted/>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>=</overloadedOperator>
  <isRecordMethod/>
</function>
<function>
  <name>operator=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>913</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>447</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>41z2bSSqaurcR8363Mn3M43xhRpc</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Move assigns the value from </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>rhs</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> if it has one.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Reference to the current object</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to move assign from</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <specialization>
              <kind>specialization</kind>
              <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
              <identifier>optional</identifier>
              <templateArgs>
                <type>
                  <kind>type</kind>
                  <type>
                    <named>
                      <kind>named</kind>
                      <name>
                        <identifier>
                          <kind>identifier</kind>
                          <identifier>T</identifier>
                        </identifier>
                      </name>
                    </named>
                  </type>
                </type>
              </templateArgs>
            </specialization>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <funcClass>normal</funcClass>
  <requires>std::is_move_constructible_v&lt;T&gt; &amp;&amp; std::is_move_assignable_v&lt;T&gt; &amp;&amp;
             (!std::is_trivially_move_assignable_v&lt;T&gt;)</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>=</overloadedOperator>
  <isRecordMethod/>
</function>
<function>
  <name>operator=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>973</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>481</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2gZsKSmPF9JqQXTuHfja2sseUnFy</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Converting move assignment operator.</literal>
          </text>
        </children>
      </paragraph>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Moves the value from </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>rhs</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if there is one. Otherwise resets the contained value in </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>*this</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal>.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Assigns the contained value from </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>rhs</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> if it has one, destroying the old value if there</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Reference to the current object</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to move assign from</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <specialization>
              <kind>specialization</kind>
              <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
              <identifier>optional</identifier>
              <templateArgs>
                <type>
                  <kind>type</kind>
                  <type>
                    <named>
                      <kind>named</kind>
                      <name>
                        <identifier>
                          <kind>identifier</kind>
                          <identifier>T</identifier>
                        </identifier>
                      </name>
                    </named>
                  </type>
                </type>
              </templateArgs>
            </specialization>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(detail::enable_assign_from_other&lt;T, U, U&gt;)</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>=</overloadedOperator>
  <isRecordMethod/>
</function>
<function>
  <name>operator=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>893</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>425</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>4R8SpKb7dTBmmEfhf9Y9PTWh4bLZ</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Resets the optional to an empty state.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Reference to the current object</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to assign from</literal>
          </text>
        </children>
        <name>value</name>
      </param>
    </params>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <specialization>
              <kind>specialization</kind>
              <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
              <identifier>optional</identifier>
              <templateArgs>
                <type>
                  <kind>type</kind>
                  <type>
                    <named>
                      <kind>named</kind>
                      <name>
                        <identifier>
                          <kind>identifier</kind>
                          <identifier>T</identifier>
                        </identifier>
                      </name>
                    </named>
                  </type>
                </type>
              </templateArgs>
            </specialization>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <params>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3Nie2BwnXWmaCCfW7FUhaxQLb3UG</id>
              <identifier>nullopt_t</identifier>
            </identifier>
          </name>
        </named>
      </type>
      <name>value</name>
    </param>
  </params>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>=</overloadedOperator>
  <isRecordMethod/>
</function>
<function>
  <name>operator=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>931</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>466</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3YUqJpAiEX8zJxDmhsu87Xu9mjKH</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Assigns the contained value from </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>u</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal>, destroying the old value if there was one.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Assigns the contained value from </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>u,</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> destroying the old value if there</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>optional&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The value to assign.</literal>
          </text>
        </children>
        <name>u</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The type of the value to assign.</literal>
          </text>
        </children>
        <name>U</name>
      </tParam>
    </tparams>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <specialization>
              <kind>specialization</kind>
              <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
              <identifier>optional</identifier>
              <templateArgs>
                <type>
                  <kind>type</kind>
                  <type>
                    <named>
                      <kind>named</kind>
                      <name>
                        <identifier>
                          <kind>identifier</kind>
                          <identifier>T</identifier>
                        </identifier>
                      </name>
                    </named>
                  </type>
                </type>
              </templateArgs>
            </specialization>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>U</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>u</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <default>
          <type>
            <kind>type</kind>
            <type>
              <named>
                <kind>named</kind>
                <name>
                  <identifier>
                    <kind>identifier</kind>
                    <identifier>T</identifier>
                  </identifier>
                </name>
              </named>
            </type>
          </type>
        </default>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>detail::enable_assign_forward&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>=</overloadedOperator>
  <isRecordMethod/>
</function>
<overloads>
  <name>and_then</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1147</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>639</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>653</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>667</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>681</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>fF5ACkPpQk79jhxvmVAipfDAXxY</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Applies a function to the contained value if there is one.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>auto</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The invocable to apply to the contained value</literal>
          </text>
        </children>
        <name>f</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The type of the invocable</literal>
          </text>
        </children>
        <name>F</name>
      </tParam>
    </tparams>
  </doc>
  <funcClass>normal</funcClass>
  <members>j4rGpzEF5xypMhxBBDT2eYt4Kuw 44ZdUzLS4Yz3y7LqC6mHg9gyZeM8 3n8gAiEAjQmcityiQWZGp2NaARt3 2y7vJoosbvnjemPWdFPpFHS2B7v9</members>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
</overloads>
<function>
  <name>and_then</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1147</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>639</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>j4rGpzEF5xypMhxBBDT2eYt4Kuw</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The return type is the same as </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>std::invoke_result_t&lt;F, T&amp;&gt;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal>, but wrapped in an optional. The function </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>f</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> must return an optional type.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Applies a function to the contained value if there is one.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>auto</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The invocable to apply to the contained value</literal>
          </text>
        </children>
        <name>f</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The type of the invocable</literal>
          </text>
        </children>
        <name>F</name>
      </tParam>
    </tparams>
  </doc>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>F</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>f</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>F</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <refQualifier>&amp;</refQualifier>
</function>
<function>
  <name>and_then</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1159</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>653</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>44ZdUzLS4Yz3y7LqC6mHg9gyZeM8</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The return type is the same as </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>std::invoke_result_t&lt;F, T&amp;&gt;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal>, but wrapped in an optional. The function </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>f</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> must return an optional type.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Applies a function to the contained value if there is one.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>auto</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The invocable to apply to the contained value</literal>
          </text>
        </children>
        <name>f</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The type of the invocable</literal>
          </text>
        </children>
        <name>F</name>
      </tParam>
    </tparams>
  </doc>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>F</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>f</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>F</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <refQualifier>&amp;&amp;</refQualifier>
</function>
<function>
  <name>and_then</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1171</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>667</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3n8gAiEAjQmcityiQWZGp2NaARt3</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The return type is the same as </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>std::invoke_result_t&lt;F, T&amp;&gt;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal>, but wrapped in an optional. The function </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>f</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> must return an optional type.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Applies a function to the contained value if there is one.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>auto</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The invocable to apply to the contained value</literal>
          </text>
        </children>
        <name>f</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The type of the invocable</literal>
          </text>
        </children>
        <name>F</name>
      </tParam>
    </tparams>
  </doc>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>F</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>f</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>F</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
  <refQualifier>&amp;</refQualifier>
</function>
<function>
  <name>and_then</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1183</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>681</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2y7vJoosbvnjemPWdFPpFHS2B7v9</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The return type is the same as </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>std::invoke_result_t&lt;F, T&amp;&gt;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal>, but wrapped in an optional. The function </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>f</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> must return an optional type.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Applies a function to the contained value if there is one.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>auto</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The invocable to apply to the contained value</literal>
          </text>
        </children>
        <name>f</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The type of the invocable</literal>
          </text>
        </children>
        <name>F</name>
      </tParam>
    </tparams>
  </doc>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>F</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>f</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>F</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
  <refQualifier>&amp;&amp;</refQualifier>
</function>
<overloads>
  <name>begin</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1040</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>519</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>525</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>3ACntyJfPQsNjkNuVrzkoXgt4qh6</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>begin</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> overloads</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>iterator</literal>
          </text>
        </children>
      </returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>const_iterator</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <funcClass>normal</funcClass>
  <members>3KwZubF7gxDRwCmCSRwkVBRS4kzK AP812nG4TBdP4fdSxDcE2v6K4nf</members>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
</overloads>
<function>
  <name>begin</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1040</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>519</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3KwZubF7gxDRwCmCSRwkVBRS4kzK</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns an iterator to the beginning of the optional.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>iterator</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <id>4FGoUppnVBSKSNnD7pJxTnGpkXUy</id>
          <identifier>iterator</identifier>
          <prefix>
            <specialization>
              <kind>specialization</kind>
              <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
              <identifier>optional</identifier>
              <templateArgs>
                <type>
                  <kind>type</kind>
                  <type>
                    <named>
                      <kind>named</kind>
                      <name>
                        <identifier>
                          <kind>identifier</kind>
                          <identifier>T</identifier>
                        </identifier>
                      </name>
                    </named>
                  </type>
                </type>
              </templateArgs>
            </specialization>
          </prefix>
        </identifier>
      </name>
    </named>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>begin</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1045</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>525</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>AP812nG4TBdP4fdSxDcE2v6K4nf</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns a const iterator to the beginning of the optional.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>const_iterator</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <id>rUHFYUza9YeWs8TbUdxhzFZonZX</id>
          <identifier>const_iterator</identifier>
          <prefix>
            <specialization>
              <kind>specialization</kind>
              <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
              <identifier>optional</identifier>
              <templateArgs>
                <type>
                  <kind>type</kind>
                  <type>
                    <named>
                      <kind>named</kind>
                      <name>
                        <identifier>
                          <kind>identifier</kind>
                          <identifier>T</identifier>
                        </identifier>
                      </name>
                    </named>
                  </type>
                </type>
              </templateArgs>
            </specialization>
          </prefix>
        </identifier>
      </name>
    </named>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
</function>
<overloads>
  <name>emplace</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>995</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>491</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>502</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>2czb7sC6p4UHb4MuDr2KjoCXGk71</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>emplace</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> overloads</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The argument list to use in emplacement construction.</literal>
          </text>
        </children>
        <name>args</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The initializer list to use in emplacement construction.</literal>
          </text>
        </children>
        <name>il</name>
      </param>
    </params>
  </doc>
  <funcClass>normal</funcClass>
  <members>239d5JVzhhqkXMmdsMpbkdugq1uc 2pddpwg2D4M6Fjj2qV6ChYcdw5YN</members>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <identifier>T</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
</overloads>
<function>
  <name>emplace</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>995</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>491</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>239d5JVzhhqkXMmdsMpbkdugq1uc</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Constructs the value in-place, destroying the current one if there is one.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs the value in-place, destroying the current one if there</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The argument list to use in emplacement construction.</literal>
          </text>
        </children>
        <name>args</name>
      </param>
    </params>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <identifier>T</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <isPackExpansion/>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>Args</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>args</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>Args</name>
        <isParameterPack/>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>emplace</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1004</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>502</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2pddpwg2D4M6Fjj2qV6ChYcdw5YN</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs the value in-place using the given arguments, destroying the current one if there</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The initializer list to use in emplacement construction.</literal>
          </text>
        </children>
        <name>il</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The argument list to use in emplacement construction.</literal>
          </text>
        </children>
        <name>args</name>
      </param>
    </params>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <identifier>T</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <params>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <specialization>
              <kind>specialization</kind>
              <id>474HF6bGJmJntnocv1iPAYL2crja</id>
              <identifier>initializer_list</identifier>
              <prefix>
                <identifier>
                  <kind>identifier</kind>
                  <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
                  <identifier>std</identifier>
                </identifier>
              </prefix>
              <templateArgs>
                <type>
                  <kind>type</kind>
                  <type>
                    <named>
                      <kind>named</kind>
                      <name>
                        <identifier>
                          <kind>identifier</kind>
                          <identifier>U</identifier>
                        </identifier>
                      </name>
                    </named>
                  </type>
                </type>
              </templateArgs>
            </specialization>
          </name>
        </named>
      </type>
      <name>il</name>
    </param>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <isPackExpansion/>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>Args</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>args</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>Args</name>
        <isParameterPack/>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<overloads>
  <name>end</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1049</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>531</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>537</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>KYa5cTZddEbre14h1p6gvqe3jaK</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>end</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> overloads</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>iterator</literal>
          </text>
        </children>
      </returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>const_iterator</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <funcClass>normal</funcClass>
  <members>29JDrxrwrw1rNJwVsyaGsY6C33n3 epNxqeTA7dFeWn3PLm6hRWY4Lr2</members>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
</overloads>
<function>
  <name>end</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1049</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>531</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>29JDrxrwrw1rNJwVsyaGsY6C33n3</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns an iterator to the end of the optional.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>iterator</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <id>4FGoUppnVBSKSNnD7pJxTnGpkXUy</id>
          <identifier>iterator</identifier>
          <prefix>
            <specialization>
              <kind>specialization</kind>
              <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
              <identifier>optional</identifier>
              <templateArgs>
                <type>
                  <kind>type</kind>
                  <type>
                    <named>
                      <kind>named</kind>
                      <name>
                        <identifier>
                          <kind>identifier</kind>
                          <identifier>T</identifier>
                        </identifier>
                      </name>
                    </named>
                  </type>
                </type>
              </templateArgs>
            </specialization>
          </prefix>
        </identifier>
      </name>
    </named>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>end</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1054</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>537</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>epNxqeTA7dFeWn3PLm6hRWY4Lr2</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns a const iterator to the end of the optional.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>const_iterator</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <id>rUHFYUza9YeWs8TbUdxhzFZonZX</id>
          <identifier>const_iterator</identifier>
          <prefix>
            <specialization>
              <kind>specialization</kind>
              <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
              <identifier>optional</identifier>
              <templateArgs>
                <type>
                  <kind>type</kind>
                  <type>
                    <named>
                      <kind>named</kind>
                      <name>
                        <identifier>
                          <kind>identifier</kind>
                          <identifier>T</identifier>
                        </identifier>
                      </name>
                    </named>
                  </type>
                </type>
              </templateArgs>
            </specialization>
          </prefix>
        </identifier>
      </name>
    </named>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
</function>
<function>
  <name>has_value</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1094</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>584</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>4GnJgyvVkvzFMVhTpHxESdyKBvV1</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Returns whether or not the optional has a value</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns whether or not the optional has a value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>bool</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
</function>
<overloads>
  <name>operator*</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1073</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>556</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>563</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>570</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>hYNCqe2QfFv6mwwmBFzxZPg9Q7Y</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns a reference to the contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T&amp;</literal>
          </text>
        </children>
      </returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>const T&amp;</literal>
          </text>
        </children>
      </returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T&amp;&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <funcClass>normal</funcClass>
  <overloadedOperator>*</overloadedOperator>
  <members>33Ju3oNUiqb6m8NnW8HGHA4M24ud 2TmRALfboBPsVCoegZedCAZCtEzA 32ZUUaqX7MUHgeQjFniGuQzoJ4mV</members>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
</overloads>
<function>
  <name>operator*</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1073</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>556</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>33Ju3oNUiqb6m8NnW8HGHA4M24ud</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Returns the contained value</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns a reference to the contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <identifier>T</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>*</overloadedOperator>
  <isRecordMethod/>
  <refQualifier>&amp;</refQualifier>
</function>
<function>
  <name>operator*</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1078</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>563</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2TmRALfboBPsVCoegZedCAZCtEzA</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns a reference to the contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>const T&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <isConst/>
          <name>
            <identifier>
              <kind>identifier</kind>
              <identifier>T</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>*</overloadedOperator>
  <isRecordMethod/>
  <isConst/>
  <refQualifier>&amp;</refQualifier>
</function>
<function>
  <name>operator*</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1083</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>570</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>32ZUUaqX7MUHgeQjFniGuQzoJ4mV</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns a reference to the contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T&amp;&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <rValueReference>
      <kind>rvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <identifier>T</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </rValueReference>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>*</overloadedOperator>
  <isRecordMethod/>
  <refQualifier>&amp;&amp;</refQualifier>
</function>
<overloads>
  <name>operator-&gt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1062</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>543</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>550</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>35LHNFu87AwQQdmC7uLbyd5ME4BA</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns a pointer to the contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T*</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <funcClass>normal</funcClass>
  <overloadedOperator>-&gt;</overloadedOperator>
  <members>33wG9rVWxqLiP41aGZmWfQ6QFxGf 2LoPSCk8yCt6J752ALRTk1tdkhCM</members>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
</overloads>
<function>
  <name>operator-&gt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1062</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>543</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>33wG9rVWxqLiP41aGZmWfQ6QFxGf</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Returns a pointer to the contained value</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns a pointer to the contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>a pointer to the contained value.</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <pointer>
      <kind>pointer</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <isConst/>
          <name>
            <identifier>
              <kind>identifier</kind>
              <identifier>T</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </pointer>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>-&gt;</overloadedOperator>
  <isRecordMethod/>
  <isConst/>
</function>
<function>
  <name>operator-&gt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1067</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>550</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2LoPSCk8yCt6J752ALRTk1tdkhCM</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns a pointer to the contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T*</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <pointer>
      <kind>pointer</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <identifier>T</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </pointer>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>-&gt;</overloadedOperator>
  <isRecordMethod/>
</function>
<overloads>
  <name>or_else</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1249</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>736</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>748</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>QwDhffdWsPjwxLB7Fp7V5WLCG6B</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>or_else</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> overloads</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>optional</literal>
          </text>
        </children>
      </returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>optional&lt;T&gt;</literal>
          </text>
        </children>
      </returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>auto</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The invocable to call if the optional is disengaged.</literal>
          </text>
        </children>
        <name>f</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>An invocable type returning an optional.</literal>
          </text>
        </children>
        <name>F</name>
      </tParam>
    </tparams>
  </doc>
  <funcClass>normal</funcClass>
  <members>2DTeZLmuTXviH6WJoMssNBY5NAJW ts7LMY2G2NbtRCr9xkgxgRjSyS8</members>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
          <identifier>optional</identifier>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <identifier>T</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </returnType>
</overloads>
<function>
  <name>or_else</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1249</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>736</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2DTeZLmuTXviH6WJoMssNBY5NAJW</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns an optional containing the contained value if it has one, or the result of applying </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>f</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> to the optional if it does not.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>optional</literal>
          </text>
        </children>
      </returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>optional&lt;T&gt;</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The invocable to call if the optional is disengaged.</literal>
          </text>
        </children>
        <name>f</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>An invocable type returning an optional.</literal>
          </text>
        </children>
        <name>F</name>
      </tParam>
    </tparams>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
          <identifier>optional</identifier>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <identifier>T</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>F</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>f</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>F</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(std::invocable&lt;F&gt; &amp;&amp; std::copy_constructible&lt;T&gt;)</requires>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
  <refQualifier>&amp;</refQualifier>
</function>
<function>
  <name>or_else</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1270</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>748</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>ts7LMY2G2NbtRCr9xkgxgRjSyS8</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns an optional containing the contained value if it has one, or the result of calling </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>f</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> if it does not.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>auto</literal>
          </text>
        </children>
      </returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>optional&lt;T&gt;</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The invocable to call if the optional is disengaged.</literal>
          </text>
        </children>
        <name>f</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>An invocable type returning an optional.</literal>
          </text>
        </children>
        <name>F</name>
      </tParam>
    </tparams>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
          <identifier>optional</identifier>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <identifier>T</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>F</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>f</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>F</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(std::invocable&lt;F&gt; &amp;&amp; std::move_constructible&lt;T&gt;)</requires>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <refQualifier>&amp;&amp;</refQualifier>
</function>
<function>
  <name>reset</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1282</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>757</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2XEd3QFK4Fy8RHFU2y7L4mrhJj3C</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Resets the optional to an empty state, destroying the contained value if there is one.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>swap</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1019</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>511</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>f8qmbihvWQRBuQcT8k3SJD43bSw</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Swaps this optional with the other.</literal>
          </text>
        </children>
      </paragraph>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>If neither optionals have a value, nothing happens. If both have a value, the values are swapped. If one has a value, it is moved to the other and the movee is left valueless.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Swaps this optional with the other.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The optional to swap with.</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<overloads>
  <name>transform</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1196</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>692</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>703</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>714</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>725</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>2xYREWVXyWepitcZmRRNNU66CtpH</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns an optional containing the result of applying </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>f</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> to the contained value, or an empty optional if there is no contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>optional</literal>
          </text>
        </children>
      </returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>auto</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>An invocable to apply to the contained value.</literal>
          </text>
        </children>
        <name>f</name>
      </param>
    </params>
  </doc>
  <funcClass>normal</funcClass>
  <members>2hsyzZRS6hpKSPBhQfgyg8XTsz9b 3vRzqf5FbkgmRGGiBcmfEu8PGZKU ET5qiHLdSyvo4zqtF1oVBnjCbaX 2a7ixUF7YPUp45UatP6dS14JVkyj</members>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
</overloads>
<function>
  <name>transform</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1196</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>692</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2hsyzZRS6hpKSPBhQfgyg8XTsz9b</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Carries out some operation on the contained object if there is one.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns an optional containing the result of applying </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>f</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> to the contained value, or an empty optional if there is no contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>optional</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>An invocable to apply to the contained value.</literal>
          </text>
        </children>
        <name>f</name>
      </param>
    </params>
  </doc>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>F</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>f</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>F</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <refQualifier>&amp;</refQualifier>
</function>
<function>
  <name>transform</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1207</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>703</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3vRzqf5FbkgmRGGiBcmfEu8PGZKU</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns an optional containing the result of applying </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>f</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> to the contained value, or an empty optional if there is no contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>auto</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>An invocable to apply to the contained value.</literal>
          </text>
        </children>
        <name>f</name>
      </param>
    </params>
  </doc>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>F</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>f</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>F</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <refQualifier>&amp;&amp;</refQualifier>
</function>
<function>
  <name>transform</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1218</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>714</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>ET5qiHLdSyvo4zqtF1oVBnjCbaX</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns an optional containing the result of applying </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>f</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> to the contained value, or an empty optional if there is no contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>auto</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>An invocable to apply to the contained value.</literal>
          </text>
        </children>
        <name>f</name>
      </param>
    </params>
  </doc>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>F</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>f</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>F</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
  <refQualifier>&amp;</refQualifier>
</function>
<function>
  <name>transform</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1229</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>725</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2a7ixUF7YPUp45UatP6dS14JVkyj</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns an optional containing the result of applying </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>f</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> to the contained value, or an empty optional if there is no contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>auto</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>An invocable to apply to the contained value.</literal>
          </text>
        </children>
        <name>f</name>
      </param>
    </params>
  </doc>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>F</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>f</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>F</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
  <refQualifier>&amp;&amp;</refQualifier>
</function>
<overloads>
  <name>value</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1101</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>591</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>598</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>605</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>Znvot81FM9xNjJWus6taRqB98Be</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns a reference to the contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T&amp;</literal>
          </text>
        </children>
      </returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>const T&amp;</literal>
          </text>
        </children>
      </returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T&amp;&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <funcClass>normal</funcClass>
  <members>3wyDVhoQ6WtVmjgVrAe3Uhyd8qzL 39FRhfHCMAfWJoPqDJc51ZtadLXS bKvdwCCrk45SfJDcZavAteE1NqJ</members>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
</overloads>
<function>
  <name>value</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1101</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>591</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3wyDVhoQ6WtVmjgVrAe3Uhyd8qzL</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Returns the contained value if there is one, otherwise throws bad_optional_access</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns a reference to the contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <identifier>T</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <refQualifier>&amp;</refQualifier>
</function>
<function>
  <name>value</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1105</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>598</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>39FRhfHCMAfWJoPqDJc51ZtadLXS</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns a reference to the contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>const T&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <isConst/>
          <name>
            <identifier>
              <kind>identifier</kind>
              <identifier>T</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
  <refQualifier>&amp;</refQualifier>
</function>
<function>
  <name>value</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1109</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>605</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>bKvdwCCrk45SfJDcZavAteE1NqJ</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns a reference to the contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T&amp;&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <rValueReference>
      <kind>rvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <identifier>T</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </rValueReference>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <refQualifier>&amp;&amp;</refQualifier>
</function>
<overloads>
  <name>value_or</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1123</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>614</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>623</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>pUzWCiZ2aPCqMofzuCVzjdXUBUX</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns the contained value if there is one, otherwise returns </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>u</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal>.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The value to return in the empty case</literal>
          </text>
        </children>
        <name>u</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The type of the alternate value</literal>
          </text>
        </children>
        <name>U</name>
      </tParam>
    </tparams>
  </doc>
  <funcClass>normal</funcClass>
  <members>2DYJ3py3zwg4cPPZumhTnxxjdMw6 3ZUhByzQum2uf5fzyrv3MKFuSYLB</members>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>3EMGL2Pkc2cr2n1jS1YaucGPmCLJ</id>
          <identifier>remove_cv_t</identifier>
          <prefix>
            <identifier>
              <kind>identifier</kind>
              <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
              <identifier>std</identifier>
            </identifier>
          </prefix>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <identifier>T</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </returnType>
</overloads>
<function>
  <name>value_or</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1123</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>614</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2DYJ3py3zwg4cPPZumhTnxxjdMw6</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Returns the contained value if there is one, otherwise returns </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>u</literal>
              </text>
            </children>
          </code>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns the contained value if there is one, otherwise returns </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>u</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal>.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The value to return in the empty case</literal>
          </text>
        </children>
        <name>u</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The type of the alternate value</literal>
          </text>
        </children>
        <name>U</name>
      </tParam>
    </tparams>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>3EMGL2Pkc2cr2n1jS1YaucGPmCLJ</id>
          <identifier>remove_cv_t</identifier>
          <prefix>
            <identifier>
              <kind>identifier</kind>
              <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
              <identifier>std</identifier>
            </identifier>
          </prefix>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <identifier>T</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>U</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>u</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <default>
          <type>
            <kind>type</kind>
            <type>
              <named>
                <kind>named</kind>
                <name>
                  <specialization>
                    <kind>specialization</kind>
                    <id>3EMGL2Pkc2cr2n1jS1YaucGPmCLJ</id>
                    <identifier>remove_cv_t</identifier>
                    <prefix>
                      <identifier>
                        <kind>identifier</kind>
                        <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
                        <identifier>std</identifier>
                      </identifier>
                    </prefix>
                    <templateArgs>
                      <type>
                        <kind>type</kind>
                        <type>
                          <named>
                            <kind>named</kind>
                            <name>
                              <identifier>
                                <kind>identifier</kind>
                                <identifier>T</identifier>
                              </identifier>
                            </name>
                          </named>
                        </type>
                      </type>
                    </templateArgs>
                  </specialization>
                </name>
              </named>
            </type>
          </type>
        </default>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
  <refQualifier>&amp;</refQualifier>
</function>
<function>
  <name>value_or</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1134</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>623</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3ZUhByzQum2uf5fzyrv3MKFuSYLB</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns the contained value if there is one, otherwise returns </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>u</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal>.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The value to return in the empty case</literal>
          </text>
        </children>
        <name>u</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The type of the alternate value</literal>
          </text>
        </children>
        <name>U</name>
      </tParam>
    </tparams>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>3EMGL2Pkc2cr2n1jS1YaucGPmCLJ</id>
          <identifier>remove_cv_t</identifier>
          <prefix>
            <identifier>
              <kind>identifier</kind>
              <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
              <identifier>std</identifier>
            </identifier>
          </prefix>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <identifier>T</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>U</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>u</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <default>
          <type>
            <kind>type</kind>
            <type>
              <named>
                <kind>named</kind>
                <name>
                  <specialization>
                    <kind>specialization</kind>
                    <id>3EMGL2Pkc2cr2n1jS1YaucGPmCLJ</id>
                    <identifier>remove_cv_t</identifier>
                    <prefix>
                      <identifier>
                        <kind>identifier</kind>
                        <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
                        <identifier>std</identifier>
                      </identifier>
                    </prefix>
                    <templateArgs>
                      <type>
                        <kind>type</kind>
                        <type>
                          <named>
                            <kind>named</kind>
                            <name>
                              <identifier>
                                <kind>identifier</kind>
                                <identifier>T</identifier>
                              </identifier>
                            </name>
                          </named>
                        </type>
                      </type>
                    </templateArgs>
                  </specialization>
                </name>
              </named>
            </type>
          </type>
        </default>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <refQualifier>&amp;&amp;</refQualifier>
</function>
<function>
  <name>operator bool</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1088</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>577</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>42JqdxWxq4raWhgtS7cYNWJ6jwEz</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Converts the optional to a boolean indicating whether it has a value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>bool</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <funcClass>conversion</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
</function>
<variable>
  <name>_</name>
  <loc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>766</lineNumber>
        <columnNumber>9</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>variable</kind>
  <id>2Xxofqmwwzz7wrc7YvgnuHSTNigF</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>The empty state of the optional.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <type>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <id>4Ymc3cZtgyuTGPR5xK8RPrYEwzaz</id>
          <identifier>empty</identifier>
        </identifier>
      </name>
    </named>
  </type>
  <initializer>{}</initializer>
  <isRecordField/>
  <isVariant/>
</variable>
<variable>
  <name>value_</name>
  <loc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>772</lineNumber>
        <columnNumber>9</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>variable</kind>
  <id>2XUQYcakRAdWVovwCgp82sX1AVvC</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>stKSn11E1qjWG8dGch9b86RSgUw</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>The contained value of the optional.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <type>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>T</identifier>
        </identifier>
      </name>
    </named>
  </type>
  <isRecordField/>
  <isVariant/>
</variable>
<record>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1519</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>record</kind>
  <id>2S5PshpnD9q3YtvvanJM6qPV2vCX</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>A specialization of </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>optional</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal> for references.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <keyKind>class</keyKind>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>class</keyKind>
      </type>
    </params>
    <args>
      <type>
        <kind>type</kind>
        <type>
          <lValueReference>
            <kind>lvalue-reference</kind>
            <pointeeType>
              <named>
                <kind>named</kind>
                <name>
                  <identifier>
                    <kind>identifier</kind>
                    <identifier>T</identifier>
                  </identifier>
                </name>
              </named>
            </pointeeType>
          </lValueReference>
        </type>
      </type>
    </args>
    <primary>stKSn11E1qjWG8dGch9b86RSgUw</primary>
  </template>
  <interface>
    <public>
      <typedefs>UpN5yBhMLDWCZMXbuyX42s6dTo4 QA1pXafVejxaKg629JYqf1Bd8dU</typedefs>
      <functions>pnGjzVDSyyim1MrVT8u9NDdzkG7 3hvxtvaMXYeLXmxN6VndbAawsJLa 4Rgq1Ft85ruUNQYDAUwEgZeRQZP2 4TW4uS2YBgiQE6Zi8MovCaGqzCx8 2L1wQcgbCoU1WFkLURUJ6CsJ5ewZ 2dMZhWcotzke9VmCF4gPr6QFPm85 28JonkcbEm8Xkb9YPcXtpW7QroJa 2UJ5MCTtcjpJUHfyA12KFoCmWFX9 3RveUtCSn6ALGhxtHM1LE3gogBfA 37MoMDR7JFjjtAUQvYHR3VrLhrPw 35RVUXPugnLgQN9AHtXFUgMaQfug AT8dvmLjmkPcsw8wWLJMdNE3xaD 3wKTSY7xZncsyrKAjHkJDKnNLgrr 4Bskpc1wxxoHxGYZokMXWvwpSm93 2AsqrmdaCbXWJygjPNCBpV5D9JeR 3oCjVHCiJiHPUumqZvHA2o5CnnLK pJgpeLJaR7usbUzf11tnkVxpUmK</functions>
    </public>
  </interface>
  <friends>
    <friendInfo>
      <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
    </friendInfo>
  </friends>
  <isListedOnPrimary/>
</record>
<typedef>
  <name>iterator</name>
  <loc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1530</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>typedef</kind>
  <id>UpN5yBhMLDWCZMXbuyX42s6dTo4</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>The type of the iterator for the optional.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <type>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>7aFJPXcrUCV7iTUPjhXnyTduFzf</id>
          <identifier>contiguous_iterator</identifier>
          <prefix>
            <identifier>
              <kind>identifier</kind>
              <id>4BdL6JgKVyJV9JpB6oUPEiayxzA5</id>
              <identifier>detail</identifier>
            </identifier>
          </prefix>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <identifier>T</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <id>2S5PshpnD9q3YtvvanJM6qPV2vCX</id>
                      <identifier>optional</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </type>
  <isUsing/>
</typedef>
<typedef>
  <name>value_type</name>
  <loc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1525</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>typedef</kind>
  <id>QA1pXafVejxaKg629JYqf1Bd8dU</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>The type of the value contained in the optional.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <type>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>T</identifier>
        </identifier>
      </name>
    </named>
  </type>
  <isUsing/>
</typedef>
<overloads>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1538</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1559</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1608</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1624</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1640</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1657</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>pnGjzVDSyyim1MrVT8u9NDdzkG7</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructors</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The value to construct from.</literal>
          </text>
        </children>
        <name>u</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The value to construct in-place from.</literal>
          </text>
        </children>
        <name>arg</name>
      </param>
    </params>
  </doc>
  <funcClass>constructor</funcClass>
  <members>2a5ghBZeLDpNVP7DR6mhaeuhES84 3HNa1mn9CFbmMozXmbfk8smzkEN9 7asJjRMg4mRf5w8Mgi4SL3Mk5s8 3u7UkHZkjEaFMJgd4Z3uJ9jQYpvd 4Xc6PZZpm5PjpgvB4bv3j53NnE1f 3Qrcjwmza62wom3uVqzishS9LEHe 3jYT3vpTkiLNeNdp2xojJrGiwe2d K1pj6TUpuggrjugZMo5zpyReubH 3WutzPMPREuWo79U5B35eRFpfwVG 358HeNk9GtooktcCU8s7NR1HWJTa 25YoKPNUJYP36eGvjWRTWsXKv1De 2GBXB2pArdXLE3BS2puH63EYUiWA 3asg6As76ioa34J3a1fNyAhdqdvH 2NvvThtWMuHQ5uMbhxZf39EePaCL</members>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
</overloads>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1538</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>2a5ghBZeLDpNVP7DR6mhaeuhES84</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Default constructor.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <funcClass>constructor</funcClass>
  <isDefaulted/>
  <isExplicitlyDefaulted/>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1551</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>3HNa1mn9CFbmMozXmbfk8smzkEN9</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Constructs an empty optional if the rhs is empty, otherwise constructs the contained value from the rhs.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Copy constructor.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to copy construct from</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <id>2S5PshpnD9q3YtvvanJM6qPV2vCX</id>
                  <identifier>optional</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <funcClass>constructor</funcClass>
  <isDefaulted/>
  <isExplicitlyDefaulted/>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1543</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>7asJjRMg4mRf5w8Mgi4SL3Mk5s8</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs an empty optional.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to construct from</literal>
          </text>
        </children>
        <name>value</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3Nie2BwnXWmaCCfW7FUhaxQLb3UG</id>
              <identifier>nullopt_t</identifier>
            </identifier>
          </name>
        </named>
      </type>
      <name>value</name>
    </param>
  </params>
  <funcClass>constructor</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1674</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>3u7UkHZkjEaFMJgd4Z3uJ9jQYpvd</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Constructs the contained value from the rhs if it has a value, otherwise constructs an empty optional. If </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>T&amp;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs an optional from another optional of type U</literal>
        </text>
      </children>
    </brief>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
    </params>
    <requires>(std::is_constructible_v&lt;T&amp;, U&amp;&gt; &amp;&amp; !std::is_same_v&lt;std::remove_cv_t&lt;T&gt;, optional&lt;U&gt;&gt; &amp;&amp;
                  !std::is_same_v&lt;T&amp;, U&gt; &amp;&amp; detail::reference_constructs_from_temporary_v&lt;T&amp;, U&amp;&gt;)</requires>
  </template>
  <funcClass>constructor</funcClass>
  <isDeleted/>
  <isDeletedAsWritten/>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1943</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1608</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>4Xc6PZZpm5PjpgvB4bv3j53NnE1f</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Constructs the contained value from the rhs if it has a value, otherwise constructs an empty optional. If </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>T&amp;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs an optional from another optional of type U.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The optional to construct from.</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
    </params>
    <requires>(std::is_constructible_v&lt;T&amp;, U&amp;&gt; &amp;&amp; !std::is_same_v&lt;std::remove_cv_t&lt;T&gt;, optional&lt;U&gt;&gt; &amp;&amp;
              !std::is_same_v&lt;T&amp;, U&gt; &amp;&amp; !detail::reference_constructs_from_temporary_v&lt;T&amp;, U&amp;&gt;)</requires>
  </template>
  <funcClass>constructor</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1690</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>3Qrcjwmza62wom3uVqzishS9LEHe</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Constructs the contained value from the rhs if it has a value, otherwise constructs an empty optional. If </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>T&amp;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs an optional from another optional of type U</literal>
        </text>
      </children>
    </brief>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
    </params>
    <requires>(std::is_constructible_v&lt;T&amp;, const U&amp;&gt; &amp;&amp; !std::is_same_v&lt;std::remove_cv_t&lt;T&gt;, optional&lt;U&gt;&gt; &amp;&amp;
                  !std::is_same_v&lt;T&amp;, U&gt; &amp;&amp; detail::reference_constructs_from_temporary_v&lt;T&amp;, const U&amp;&gt;)</requires>
  </template>
  <funcClass>constructor</funcClass>
  <isDeleted/>
  <isDeletedAsWritten/>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1953</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1624</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3jYT3vpTkiLNeNdp2xojJrGiwe2d</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Constructs the contained value from the rhs if it has a value, otherwise constructs an empty optional. If </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>T&amp;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs an optional from another optional of type U.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The optional to construct from.</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
    </params>
    <requires>(std::is_constructible_v&lt;T&amp;, const U&amp;&gt; &amp;&amp; !std::is_same_v&lt;std::remove_cv_t&lt;T&gt;, optional&lt;U&gt;&gt; &amp;&amp;
              !std::is_same_v&lt;T&amp;, U&gt; &amp;&amp; !detail::reference_constructs_from_temporary_v&lt;T&amp;, const U&amp;&gt;)</requires>
  </template>
  <funcClass>constructor</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1572</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>K1pj6TUpuggrjugZMo5zpyReubH</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Constructs the contained value from </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>u</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if it is convertible to </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>T&amp;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal>. If </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>T&amp;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Construct from a U</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The value to construct from.</literal>
          </text>
        </children>
        <name>u</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>U</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>u</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
    </params>
    <requires>(std::is_constructible_v&lt;T&amp;, U&gt; &amp;&amp; !(std::is_same_v&lt;std::remove_cvref_t&lt;U&gt;, in_place_t&gt;) &amp;&amp;
                  !(std::is_same_v&lt;std::remove_cvref_t&lt;U&gt;, optional&gt;) &amp;&amp;
                  !detail::reference_constructs_from_temporary_v&lt;T&amp;, U&gt;)</requires>
  </template>
  <funcClass>constructor</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1586</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>3WutzPMPREuWo79U5B35eRFpfwVG</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs an optional from a U, but deletes the constructor if</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to move construct from</literal>
          </text>
        </children>
        <name>u</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>U</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>u</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
    </params>
    <requires>(std::is_constructible_v&lt;T&amp;, U&gt; &amp;&amp; !(std::is_same_v&lt;std::remove_cvref_t&lt;U&gt;, in_place_t&gt;) &amp;&amp;
                  !(std::is_same_v&lt;std::remove_cvref_t&lt;U&gt;, optional&gt;) &amp;&amp;
                  detail::reference_constructs_from_temporary_v&lt;T&amp;, U&gt;)</requires>
  </template>
  <funcClass>constructor</funcClass>
  <isDeleted/>
  <isDeletedAsWritten/>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1706</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>358HeNk9GtooktcCU8s7NR1HWJTa</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Constructs the contained value from the rhs if it has a value, otherwise constructs an empty optional. If </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>T&amp;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs an optional from another optional of type U</literal>
        </text>
      </children>
    </brief>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
    </params>
    <requires>(std::is_constructible_v&lt;T&amp;, U&gt; &amp;&amp; !std::is_same_v&lt;std::remove_cv_t&lt;T&gt;, optional&lt;U&gt;&gt; &amp;&amp;
                  !std::is_same_v&lt;T&amp;, U&gt; &amp;&amp; detail::reference_constructs_from_temporary_v&lt;T&amp;, U&gt;)</requires>
  </template>
  <funcClass>constructor</funcClass>
  <isDeleted/>
  <isDeletedAsWritten/>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1963</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1640</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>25YoKPNUJYP36eGvjWRTWsXKv1De</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Constructs the contained value from the rhs if it has a value, otherwise constructs an empty optional. If </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>T&amp;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs an optional from another optional of type U.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The optional to construct from.</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
    </params>
    <requires>(std::is_constructible_v&lt;T&amp;, U&gt; &amp;&amp; !std::is_same_v&lt;std::remove_cv_t&lt;T&gt;, optional&lt;U&gt;&gt; &amp;&amp;
              !std::is_same_v&lt;T&amp;, U&gt; &amp;&amp; !detail::reference_constructs_from_temporary_v&lt;T&amp;, U&gt;)</requires>
  </template>
  <funcClass>constructor</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1722</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>2GBXB2pArdXLE3BS2puH63EYUiWA</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Constructs the contained value from the rhs if it has a value, otherwise constructs an empty optional. If </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>T&amp;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs an optional from another optional of type U</literal>
        </text>
      </children>
    </brief>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
    </params>
    <requires>(std::is_constructible_v&lt;T&amp;, const U&gt; &amp;&amp; !std::is_same_v&lt;std::remove_cv_t&lt;T&gt;, optional&lt;U&gt;&gt; &amp;&amp;
                  !std::is_same_v&lt;T&amp;, U&gt; &amp;&amp; detail::reference_constructs_from_temporary_v&lt;T&amp;, const U&gt;)</requires>
  </template>
  <funcClass>constructor</funcClass>
  <isDeleted/>
  <isDeletedAsWritten/>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1973</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1657</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3asg6As76ioa34J3a1fNyAhdqdvH</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Constructs the contained value from the rhs if it has a value, otherwise constructs an empty optional. If </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>T&amp;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Constructs an optional from another optional of type U.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The optional to construct from.</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The type contained the right hand side optional.</literal>
          </text>
        </children>
        <name>U</name>
      </tParam>
    </tparams>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
    </params>
    <requires>(std::is_constructible_v&lt;T&amp;, const U&gt; &amp;&amp; !std::is_same_v&lt;std::remove_cv_t&lt;T&gt;, optional&lt;U&gt;&gt; &amp;&amp;
              !std::is_same_v&lt;T&amp;, U&gt; &amp;&amp; !detail::reference_constructs_from_temporary_v&lt;T&amp;, const U&gt;)</requires>
  </template>
  <funcClass>constructor</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1927</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1559</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2NvvThtWMuHQ5uMbhxZf39EePaCL</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>In-place constructor.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The value to construct in-place from.</literal>
          </text>
        </children>
        <name>arg</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3AHKaMhiP2J4hfuP4o1BW8ujCUpJ</id>
              <identifier>in_place_t</identifier>
            </identifier>
          </name>
        </named>
      </type>
    </param>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>Arg</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>arg</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>Arg</name>
        <keyKind>class</keyKind>
      </type>
    </params>
    <requires>(std::is_constructible_v&lt;T&amp;, Arg&gt; &amp;&amp; !detail::reference_constructs_from_temporary_v&lt;T&amp;, Arg&gt;)</requires>
  </template>
  <funcClass>constructor</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>~optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1734</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>3hvxtvaMXYeLXmxN6VndbAawsJLa</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Does not destroy the contained value, as it is a reference.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Destructor.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <funcClass>destructor</funcClass>
  <isDefaulted/>
  <isExplicitlyDefaulted/>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<overloads>
  <name>operator=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1757</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1746</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>4Rgq1Ft85ruUNQYDAUwEgZeRQZP2</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Assignment operators</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>optional&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The value to assign.</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <funcClass>normal</funcClass>
  <overloadedOperator>=</overloadedOperator>
  <members>24g2LEnnTwHbpXMqAcVZPm1hFL3f 49rbkMSQP65jS1UrX3eEzFmhfR6A</members>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
</overloads>
<function>
  <name>operator=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1757</lineNumber>
      <columnNumber>5</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>24g2LEnnTwHbpXMqAcVZPm1hFL3f</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>If </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>rhs</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> has a value, assigns it to the contained value. Otherwise resets the contained value in </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>*this</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal>.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Assignment operator.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>optional&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The value to assign.</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>2S5PshpnD9q3YtvvanJM6qPV2vCX</id>
              <identifier>optional</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <id>2S5PshpnD9q3YtvvanJM6qPV2vCX</id>
                  <identifier>optional</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <funcClass>normal</funcClass>
  <isDefaulted/>
  <isExplicitlyDefaulted/>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>=</overloadedOperator>
  <isRecordMethod/>
</function>
<function>
  <name>operator=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1984</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1746</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>49rbkMSQP65jS1UrX3eEzFmhfR6A</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Destroys the current value if there is one, and leaves the optional in an empty state.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Nullopt assignment operator.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>optional&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The object to assign from</literal>
          </text>
        </children>
        <name>value</name>
      </param>
    </params>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <specialization>
              <kind>specialization</kind>
              <id>2S5PshpnD9q3YtvvanJM6qPV2vCX</id>
              <identifier>optional</identifier>
              <templateArgs>
                <type>
                  <kind>type</kind>
                  <type>
                    <lValueReference>
                      <kind>lvalue-reference</kind>
                      <pointeeType>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </pointeeType>
                    </lValueReference>
                  </type>
                </type>
              </templateArgs>
            </specialization>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <params>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3Nie2BwnXWmaCCfW7FUhaxQLb3UG</id>
              <identifier>nullopt_t</identifier>
            </identifier>
          </name>
        </named>
      </type>
      <name>value</name>
    </param>
  </params>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>=</overloadedOperator>
  <isRecordMethod/>
</function>
<function>
  <name>and_then</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>2060</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1865</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>4TW4uS2YBgiQE6Zi8MovCaGqzCx8</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The return type is the same as </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>std::invoke_result_t&lt;F, T&amp;&gt;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal>, but wrapped in an optional. The function </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>f</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> must return an optional type.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Applies a function to the contained value if there is one.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>auto</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The invocable to apply to the contained value</literal>
          </text>
        </children>
        <name>f</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The type of the invocable</literal>
          </text>
        </children>
        <name>F</name>
      </tParam>
    </tparams>
  </doc>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>F</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>f</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>F</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
</function>
<function>
  <name>begin</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>2007</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1787</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2L1wQcgbCoU1WFkLURUJ6CsJ5ewZ</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns an iterator to the beginning of the optional.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>iterator</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <id>UpN5yBhMLDWCZMXbuyX42s6dTo4</id>
          <identifier>iterator</identifier>
          <prefix>
            <specialization>
              <kind>specialization</kind>
              <id>2S5PshpnD9q3YtvvanJM6qPV2vCX</id>
              <identifier>optional</identifier>
              <templateArgs>
                <type>
                  <kind>type</kind>
                  <type>
                    <lValueReference>
                      <kind>lvalue-reference</kind>
                      <pointeeType>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </pointeeType>
                    </lValueReference>
                  </type>
                </type>
              </templateArgs>
            </specialization>
          </prefix>
        </identifier>
      </name>
    </named>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
</function>
<function>
  <name>emplace</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1991</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1769</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2dMZhWcotzke9VmCF4gPr6QFPm85</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Constructs the contained value from </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>u</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if it is convertible to </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>T&amp;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal>.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Emplaces a new value in the optional, destroying the current one if the optional is engaged.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The value to emplace.</literal>
          </text>
        </children>
        <name>u</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The type of the value to emplace.</literal>
          </text>
        </children>
        <name>U</name>
      </tParam>
    </tparams>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <identifier>T</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>U</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>u</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
      </type>
    </params>
    <requires>(std::is_constructible_v&lt;T&amp;, U&gt; &amp;&amp; !detail::reference_constructs_from_temporary_v&lt;T&amp;, U&gt;)</requires>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>end</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>2012</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1794</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>28JonkcbEm8Xkb9YPcXtpW7QroJa</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns an iterator to the end of the optional.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>iterator</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <id>UpN5yBhMLDWCZMXbuyX42s6dTo4</id>
          <identifier>iterator</identifier>
          <prefix>
            <specialization>
              <kind>specialization</kind>
              <id>2S5PshpnD9q3YtvvanJM6qPV2vCX</id>
              <identifier>optional</identifier>
              <templateArgs>
                <type>
                  <kind>type</kind>
                  <type>
                    <lValueReference>
                      <kind>lvalue-reference</kind>
                      <pointeeType>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </pointeeType>
                    </lValueReference>
                  </type>
                </type>
              </templateArgs>
            </specialization>
          </prefix>
        </identifier>
      </name>
    </named>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
</function>
<function>
  <name>has_value</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>2032</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1823</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2UJ5MCTtcjpJUHfyA12KFoCmWFX9</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Checks if the optional has a value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>bool</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
</function>
<function>
  <name>operator*</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>2023</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1809</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3RveUtCSn6ALGhxtHM1LE3gogBfA</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns a reference to the contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <identifier>T</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>*</overloadedOperator>
  <isRecordMethod/>
  <isConst/>
</function>
<function>
  <name>operator-&gt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>2018</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1802</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>37MoMDR7JFjjtAUQvYHR3VrLhrPw</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns a pointer to the contained value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T*</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <pointer>
      <kind>pointer</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <identifier>T</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </pointer>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>-&gt;</overloadedOperator>
  <isRecordMethod/>
  <isConst/>
</function>
<function>
  <name>or_else</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>2101</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1892</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>35RVUXPugnLgQN9AHtXFUgMaQfug</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The return type is the same as the return type of </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>f,</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> which must return an optional type.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Calls a function if the optional is empty.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>optional</literal>
          </text>
        </children>
      </returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>optional&lt;T&amp;&gt;</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The invocable to apply to the contained value</literal>
          </text>
        </children>
        <name>f</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The type of the invocable</literal>
          </text>
        </children>
        <name>F</name>
      </tParam>
    </tparams>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>2S5PshpnD9q3YtvvanJM6qPV2vCX</id>
          <identifier>optional</identifier>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <lValueReference>
                  <kind>lvalue-reference</kind>
                  <pointeeType>
                    <named>
                      <kind>named</kind>
                      <name>
                        <identifier>
                          <kind>identifier</kind>
                          <identifier>T</identifier>
                        </identifier>
                      </name>
                    </named>
                  </pointeeType>
                </lValueReference>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>F</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>f</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>F</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(std::invocable&lt;F&gt;)</requires>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
</function>
<function>
  <name>reset</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>2116</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1901</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>AT8dvmLjmkPcsw8wWLJMdNE3xaD</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Resets the optional to an empty state.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>swap</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>2000</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1779</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3wKTSY7xZncsyrKAjHkJDKnNLgrr</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Swaps the contents of this optional with another.</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The value to swap with.</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <id>2S5PshpnD9q3YtvvanJM6qPV2vCX</id>
                  <identifier>optional</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
</function>
<function>
  <name>transform</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>2077</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1879</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>4Bskpc1wxxoHxGYZokMXWvwpSm93</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <document>
      <paragraph>
        <kind>paragraph</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The return type is the same as </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>std::invoke_result_t&lt;F, T&amp;&gt;</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal>, but wrapped in an optional.</literal>
          </text>
        </children>
      </paragraph>
    </document>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Applies a function to the contained value if there is one.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>optional&lt;std::invoke_result_t&lt;F, T&amp;&gt;&gt;</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The invocable to apply to the contained value</literal>
          </text>
        </children>
        <name>f</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The type of the invocable</literal>
          </text>
        </children>
        <name>F</name>
      </tParam>
    </tparams>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
          <identifier>optional</identifier>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <specialization>
                      <kind>specialization</kind>
                      <id>iMRRq7ywnsLN6La9RCDqeGhXpB9</id>
                      <identifier>invoke_result_t</identifier>
                      <prefix>
                        <identifier>
                          <kind>identifier</kind>
                          <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
                          <identifier>std</identifier>
                        </identifier>
                      </prefix>
                      <templateArgs>
                        <type>
                          <kind>type</kind>
                          <type>
                            <named>
                              <kind>named</kind>
                              <name>
                                <identifier>
                                  <kind>identifier</kind>
                                  <identifier>F</identifier>
                                </identifier>
                              </name>
                            </named>
                          </type>
                        </type>
                        <type>
                          <kind>type</kind>
                          <type>
                            <lValueReference>
                              <kind>lvalue-reference</kind>
                              <pointeeType>
                                <named>
                                  <kind>named</kind>
                                  <name>
                                    <identifier>
                                      <kind>identifier</kind>
                                      <identifier>T</identifier>
                                    </identifier>
                                  </name>
                                </named>
                              </pointeeType>
                            </lValueReference>
                          </type>
                        </type>
                      </templateArgs>
                    </specialization>
                  </name>
                </named>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>F</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>f</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>F</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
</function>
<function>
  <name>value</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>2037</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1830</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2AsqrmdaCbXWJygjPNCBpV5D9JeR</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns the contained value if there is one, otherwise throws</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>T&amp;</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <lValueReference>
      <kind>lvalue-reference</kind>
      <pointeeType>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <identifier>T</identifier>
            </identifier>
          </name>
        </named>
      </pointeeType>
    </lValueReference>
  </returnType>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
</function>
<function>
  <name>value_or</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>2046</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1849</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3oCjVHCiJiHPUumqZvHA2o5CnnLK</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Returns the contained value if there is one, otherwise returns </literal>
        </text>
        <code>
          <kind>code</kind>
          <children>
            <text>
              <kind>text</kind>
              <literal>u</literal>
            </text>
          </children>
        </code>
        <text>
          <kind>text</kind>
          <literal>.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>std::remove_cv_t&lt;T&gt;</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The value to return in the empty case</literal>
          </text>
        </children>
        <name>u</name>
      </param>
    </params>
    <tparams>
      <tParam>
        <kind>t-param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The type of the alternate value</literal>
          </text>
        </children>
        <name>U</name>
      </tParam>
    </tparams>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>2EFqHfipcud8CVBjqxr52QiKqLF4</id>
          <identifier>decay_t</identifier>
          <prefix>
            <identifier>
              <kind>identifier</kind>
              <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
              <identifier>std</identifier>
            </identifier>
          </prefix>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <identifier>T</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>U</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>u</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>U</name>
        <default>
          <type>
            <kind>type</kind>
            <type>
              <named>
                <kind>named</kind>
                <name>
                  <specialization>
                    <kind>specialization</kind>
                    <id>3EMGL2Pkc2cr2n1jS1YaucGPmCLJ</id>
                    <identifier>remove_cv_t</identifier>
                    <prefix>
                      <identifier>
                        <kind>identifier</kind>
                        <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
                        <identifier>std</identifier>
                      </identifier>
                    </prefix>
                    <templateArgs>
                      <type>
                        <kind>type</kind>
                        <type>
                          <named>
                            <kind>named</kind>
                            <name>
                              <identifier>
                                <kind>identifier</kind>
                                <identifier>T</identifier>
                              </identifier>
                            </name>
                          </named>
                        </type>
                      </type>
                    </templateArgs>
                  </specialization>
                </name>
              </named>
            </type>
          </type>
        </default>
        <keyKind>class</keyKind>
      </type>
    </params>
    <requires>(std::is_object_v&lt;T&gt; &amp;&amp; !std::is_array_v&lt;T&gt;)</requires>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
</function>
<function>
  <name>operator bool</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>2028</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>1816</lineNumber>
        <columnNumber>5</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>pJgpeLJaR7usbUzf11tnkVxpUmK</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2S5PshpnD9q3YtvvanJM6qPV2vCX</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Converts the optional to a boolean value.</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>bool</literal>
          </text>
        </children>
      </returns>
    </returns>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <funcClass>conversion</funcClass>
  <constexpr>constexpr</constexpr>
  <isRecordMethod/>
  <isConst/>
</function>
<overloads>
  <name>make_optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1454</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>232</lineNumber>
        <columnNumber>1</columnNumber>
        <documented/>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>237</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>241</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>WHRDDnL3bYrhCQRdJ2UfRFHkWov</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Make an optional</literal>
        </text>
      </children>
    </brief>
  </doc>
  <funcClass>normal</funcClass>
  <members>2HWj8myuJYLPyKdUmDmaWtKqcJE9 8xFTVsvbsd5oFRNRjgxPZqtiRux 4YtAiDV99tZ4XnYSSuCqqH2vYAiy</members>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
</overloads>
<function>
  <name>make_optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1454</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>232</lineNumber>
        <columnNumber>1</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2HWj8myuJYLPyKdUmDmaWtKqcJE9</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Make an optional</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Optional Objects</literal>
          </text>
        </children>
      </returns>
    </returns>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
          <identifier>optional</identifier>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <specialization>
                      <kind>specialization</kind>
                      <id>2EFqHfipcud8CVBjqxr52QiKqLF4</id>
                      <identifier>decay_t</identifier>
                      <prefix>
                        <identifier>
                          <kind>identifier</kind>
                          <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
                          <identifier>std</identifier>
                        </identifier>
                      </prefix>
                      <templateArgs>
                        <type>
                          <kind>type</kind>
                          <type>
                            <named>
                              <kind>named</kind>
                              <name>
                                <identifier>
                                  <kind>identifier</kind>
                                  <identifier>T</identifier>
                                </identifier>
                              </name>
                            </named>
                          </type>
                        </type>
                      </templateArgs>
                    </specialization>
                  </name>
                </named>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>T</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>t</name>
    </param>
  </params>
  <template>
    <params>
      <constant>
        <kind>constant</kind>
        <default>
          <constant>
            <kind>constant</kind>
            <value>0</value>
          </constant>
        </default>
        <type>
          <named>
            <kind>named</kind>
            <name>
              <identifier>
                <kind>identifier</kind>
                <identifier>int</identifier>
              </identifier>
            </name>
            <fundamentalType>int</fundamentalType>
          </named>
        </type>
      </constant>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>std::is_constructible_v&lt;std::decay_t&lt;T&gt;, T&gt;</requires>
  <constexpr>constexpr</constexpr>
</function>
<function>
  <name>make_optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1462</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>237</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>8xFTVsvbsd5oFRNRjgxPZqtiRux</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
          <identifier>optional</identifier>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <identifier>T</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <isPackExpansion/>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>Args</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>args</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>Args</name>
        <isParameterPack/>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>std::is_constructible_v&lt;T, Args...&gt;</requires>
  <constexpr>constexpr</constexpr>
</function>
<function>
  <name>make_optional</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1470</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>241</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>4YtAiDV99tZ4XnYSSuCqqH2vYAiy</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
          <identifier>optional</identifier>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <identifier>T</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <specialization>
              <kind>specialization</kind>
              <id>474HF6bGJmJntnocv1iPAYL2crja</id>
              <identifier>initializer_list</identifier>
              <prefix>
                <identifier>
                  <kind>identifier</kind>
                  <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
                  <identifier>std</identifier>
                </identifier>
              </prefix>
              <templateArgs>
                <type>
                  <kind>type</kind>
                  <type>
                    <named>
                      <kind>named</kind>
                      <name>
                        <identifier>
                          <kind>identifier</kind>
                          <identifier>U</identifier>
                        </identifier>
                      </name>
                    </named>
                  </type>
                </type>
              </templateArgs>
            </specialization>
          </name>
        </named>
      </type>
      <name>il</name>
    </param>
    <param>
      <type>
        <rValueReference>
          <kind>rvalue-reference</kind>
          <isPackExpansion/>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>Args</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </rValueReference>
      </type>
      <name>args</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>Args</name>
        <isParameterPack/>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>std::is_constructible_v&lt;T, std::initializer_list&lt;U&gt;&amp;, Args...&gt;</requires>
  <constexpr>constexpr</constexpr>
</function>
<function>
  <name>swap</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1447</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>225</lineNumber>
        <columnNumber>1</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2tfXN82M5cmUZMwdfrwBqfuUUzr4</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Swap</literal>
        </text>
      </children>
    </brief>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Optional Objects</literal>
          </text>
        </children>
        <name>x</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>Optional Objects</literal>
          </text>
        </children>
        <name>y</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>void</identifier>
        </identifier>
      </name>
      <fundamentalType>void</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>x</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>y</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>std::is_move_constructible_v&lt;T&gt; &amp;&amp; std::is_swappable_v&lt;T&gt;</requires>
  <constexpr>constexpr</constexpr>
</function>
<overloads>
  <name>operator==</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>127</lineNumber>
      <columnNumber>5</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>141</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>163</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>169</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>173</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>xRZRsmPQdTViYcrE7vYCAGrf3u9</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Equality operators</literal>
        </text>
      </children>
    </brief>
  </doc>
  <funcClass>normal</funcClass>
  <overloadedOperator>==</overloadedOperator>
  <members>pNA5xLb4d5JnqxwiXfxyBBMyDfn 2tYqmitmjQgK3JELrRLKmtwAyLq2 z5XJ5i6wDZmEtJCnpvjS2eXcJN 3663xxcXAQyFT578vBfWWvUTzhfg 3Vg4hfMjh3ux6XVAisQ94ify6hcY</members>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
</overloads>
<function>
  <name>operator==</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>127</lineNumber>
      <columnNumber>5</columnNumber>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>pNA5xLb4d5JnqxwiXfxyBBMyDfn</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Equality operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the objects are equal, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3Nie2BwnXWmaCCfW7FUhaxQLb3UG</id>
              <identifier>nullopt_t</identifier>
            </identifier>
          </name>
        </named>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3Nie2BwnXWmaCCfW7FUhaxQLb3UG</id>
              <identifier>nullopt_t</identifier>
            </identifier>
          </name>
        </named>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>==</overloadedOperator>
</function>
<function>
  <name>operator==</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1296</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>141</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2tYqmitmjQgK3JELrRLKmtwAyLq2</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Equality operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the objects are equal, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>detail::optional_eq_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>==</overloadedOperator>
</function>
<function>
  <name>operator==</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1344</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>163</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>z5XJ5i6wDZmEtJCnpvjS2eXcJN</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Equality operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the objects are equal, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3Nie2BwnXWmaCCfW7FUhaxQLb3UG</id>
              <identifier>nullopt_t</identifier>
            </identifier>
          </name>
        </named>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>==</overloadedOperator>
</function>
<function>
  <name>operator==</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1355</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>169</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3663xxcXAQyFT578vBfWWvUTzhfg</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Equality operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the objects are equal, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>U</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(!detail::is_optional&lt;U&gt;) &amp;&amp; detail::optional_eq_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>==</overloadedOperator>
</function>
<function>
  <name>operator==</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1362</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>173</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3Vg4hfMjh3ux6XVAisQ94ify6hcY</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Equality operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the objects are equal, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>T</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(!detail::is_optional&lt;T&gt;) &amp;&amp; detail::optional_eq_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>==</overloadedOperator>
</function>
<overloads>
  <name>operator!=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1303</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>144</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>177</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>181</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>3sxkkivFjQz24e9QuRG1yeZ6D56y</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Inequality operators</literal>
        </text>
      </children>
    </brief>
  </doc>
  <funcClass>normal</funcClass>
  <overloadedOperator>!=</overloadedOperator>
  <members>4H6YjW86723UUZf7RvG74wYyn1mr 41t8s3X1tRdoWV4FAUG3mYYzhsZF 3yEB8jt65w2JGqJSvhcBGLz53oqt</members>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
</overloads>
<function>
  <name>operator!=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1303</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>144</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>4H6YjW86723UUZf7RvG74wYyn1mr</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Inequality operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the objects are not equal, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>detail::optional_ne_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>!=</overloadedOperator>
</function>
<function>
  <name>operator!=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1369</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>177</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>41t8s3X1tRdoWV4FAUG3mYYzhsZF</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Inequality operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the objects are not equal, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>U</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(!detail::is_optional&lt;U&gt;) &amp;&amp; detail::optional_ne_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>!=</overloadedOperator>
</function>
<function>
  <name>operator!=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1376</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>181</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3yEB8jt65w2JGqJSvhcBGLz53oqt</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Inequality operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the objects are not equal, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>T</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(!detail::is_optional&lt;T&gt;) &amp;&amp; detail::optional_ne_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>!=</overloadedOperator>
</function>
<overloads>
  <name>operator&lt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1310</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>147</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>185</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>189</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>2fQme5Zfs2yE4F1D7R6zmeya5Mpk</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Less-than operators</literal>
        </text>
      </children>
    </brief>
  </doc>
  <funcClass>normal</funcClass>
  <overloadedOperator>&lt;</overloadedOperator>
  <members>3xhdkTvptaGFzcEhHaDFziBokcpk 2zFuGayQuKGeix8iB5yv2SGCQAQV wXuFw2XnQxMXXBjnEZK2t1sPnLx</members>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
</overloads>
<function>
  <name>operator&lt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1310</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>147</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3xhdkTvptaGFzcEhHaDFziBokcpk</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Less-than operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the left object is less than the right object, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>detail::optional_lt_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>&lt;</overloadedOperator>
</function>
<function>
  <name>operator&lt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1383</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>185</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2zFuGayQuKGeix8iB5yv2SGCQAQV</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Less-than operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the left object is less than the right object, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>U</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(!detail::is_optional&lt;U&gt;) &amp;&amp; detail::optional_lt_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>&lt;</overloadedOperator>
</function>
<function>
  <name>operator&lt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1390</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>189</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>wXuFw2XnQxMXXBjnEZK2t1sPnLx</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Less-than operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the left object is less than the right object, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>T</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(!detail::is_optional&lt;T&gt;) &amp;&amp; detail::optional_lt_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>&lt;</overloadedOperator>
</function>
<overloads>
  <name>operator&lt;=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1324</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>153</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>201</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>205</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>2F6uJuMhg22HUKzg5FKkbGy7Sd7T</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Less-than-or-equal operators</literal>
        </text>
      </children>
    </brief>
  </doc>
  <funcClass>normal</funcClass>
  <overloadedOperator>&lt;=</overloadedOperator>
  <members>JHWZFG1QuJm3YdAUJw2sqb23Bdd 4U67355ASMmohCHv9a9WgP4JP6QC 3gJWNaAtcBpd97xbXa9ZFRnNP3wh</members>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
</overloads>
<function>
  <name>operator&lt;=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1324</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>153</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>JHWZFG1QuJm3YdAUJw2sqb23Bdd</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Less-than-or-equal operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the left object is less than or equal to the right object, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>detail::optional_le_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>&lt;=</overloadedOperator>
</function>
<function>
  <name>operator&lt;=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1411</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>201</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>4U67355ASMmohCHv9a9WgP4JP6QC</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Less-than-or-equal operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the left object is less than or equal to the right object, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>U</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(!detail::is_optional&lt;U&gt;) &amp;&amp; detail::optional_le_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>&lt;=</overloadedOperator>
</function>
<function>
  <name>operator&lt;=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1418</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>205</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3gJWNaAtcBpd97xbXa9ZFRnNP3wh</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Less-than-or-equal operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the left object is less than or equal to the right object, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>T</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(!detail::is_optional&lt;T&gt;) &amp;&amp; detail::optional_le_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>&lt;=</overloadedOperator>
</function>
<overloads>
  <name>operator&gt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1317</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>150</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>193</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>197</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>2CWjWZ8EKkqe4dEw6GYY9A9mzSSn</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Greater-than operators</literal>
        </text>
      </children>
    </brief>
  </doc>
  <funcClass>normal</funcClass>
  <overloadedOperator>&gt;</overloadedOperator>
  <members>2rGjnZebejHDqy2phPGBsPf8skpB 3wacTpwJCF5K7kVDcfF7UzdBtxDV hjpd7g18st8mwXsWszE7c6ZNPFf</members>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
</overloads>
<function>
  <name>operator&gt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1317</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>150</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2rGjnZebejHDqy2phPGBsPf8skpB</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Greater-than operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the left object is greater than the right object, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>detail::optional_gt_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>&gt;</overloadedOperator>
</function>
<function>
  <name>operator&gt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1397</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>193</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3wacTpwJCF5K7kVDcfF7UzdBtxDV</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Greater-than operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the left object is greater than the right object, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>U</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(!detail::is_optional&lt;U&gt;) &amp;&amp; detail::optional_gt_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>&gt;</overloadedOperator>
</function>
<function>
  <name>operator&gt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1404</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>197</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>hjpd7g18st8mwXsWszE7c6ZNPFf</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Greater-than operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the left object is greater than the right object, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>T</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(!detail::is_optional&lt;T&gt;) &amp;&amp; detail::optional_gt_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>&gt;</overloadedOperator>
</function>
<overloads>
  <name>operator&gt;=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1331</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>156</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>209</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>213</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>35nWvgNB1tgMcGXGCyPBu6BYPxC9</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Greater-than-or-equal operators</literal>
        </text>
      </children>
    </brief>
  </doc>
  <funcClass>normal</funcClass>
  <overloadedOperator>&gt;=</overloadedOperator>
  <members>4PVJuukyNqLdAtaH2Wo4FdC3C4aL A5X3anskMAn5KDECh8rMF7gMwN7 3x75c1khxXWVWdPQEBwhogVtBPVk</members>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
</overloads>
<function>
  <name>operator&gt;=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1331</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>156</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>4PVJuukyNqLdAtaH2Wo4FdC3C4aL</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Greater-than-or-equal operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the left object is greater than or equal to the right object, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>detail::optional_ge_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>&gt;=</overloadedOperator>
</function>
<function>
  <name>operator&gt;=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1425</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>209</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>A5X3anskMAn5KDECh8rMF7gMwN7</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Greater-than-or-equal operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the left object is greater than or equal to the right object, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>U</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(!detail::is_optional&lt;U&gt;) &amp;&amp; detail::optional_ge_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>&gt;=</overloadedOperator>
</function>
<function>
  <name>operator&gt;=</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1432</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>213</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3x75c1khxXWVWdPQEBwhogVtBPVk</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Greater-than-or-equal operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>true</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> if the left object is greater than or equal to the right object, </literal>
          </text>
          <code>
            <kind>code</kind>
            <children>
              <text>
                <kind>text</kind>
                <literal>false</literal>
              </text>
            </children>
          </code>
          <text>
            <kind>text</kind>
            <literal> otherwise</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <identifier>bool</identifier>
        </identifier>
      </name>
      <fundamentalType>bool</fundamentalType>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>T</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <requires>(!detail::is_optional&lt;T&gt;) &amp;&amp; detail::optional_ge_rel&lt;T, U&gt;</requires>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>&gt;=</overloadedOperator>
</function>
<overloads>
  <name>operator&lt;=&gt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>129</lineNumber>
      <columnNumber>5</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>159</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>165</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>217</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>overloads</kind>
  <id>wJuLzwMRaVYw4rWw3ggVYZMjcsQ</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Three-way comparison operators</literal>
        </text>
      </children>
    </brief>
  </doc>
  <funcClass>normal</funcClass>
  <overloadedOperator>&lt;=&gt;</overloadedOperator>
  <members>3K9tenKYgxxzM4s52myAjEAaUUzo 3CXfxZXbwPmdooJDcc1wvMNdxsCZ 2CXMJgmqh56x65vbspGAqs13WT3f 2qWBTqSQJpUKPd4ixiJgTsZjQYxu</members>
  <returnType>
    <auto>
      <kind>auto</kind>
      <keyword>auto</keyword>
    </auto>
  </returnType>
</overloads>
<function>
  <name>operator&lt;=&gt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>129</lineNumber>
      <columnNumber>5</columnNumber>
    </defLoc>
  </loc>
  <kind>function</kind>
  <id>3K9tenKYgxxzM4s52myAjEAaUUzo</id>
  <access>public</access>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Three-way comparison operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The relative order of the objects</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>lhs</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <id>3k2uwCJKHuMhuR8wQ83kh9SVn7RX</id>
          <identifier>strong_ordering</identifier>
          <prefix>
            <identifier>
              <kind>identifier</kind>
              <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
              <identifier>std</identifier>
            </identifier>
          </prefix>
        </identifier>
      </name>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3Nie2BwnXWmaCCfW7FUhaxQLb3UG</id>
              <identifier>nullopt_t</identifier>
            </identifier>
          </name>
        </named>
      </type>
      <name>lhs</name>
    </param>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3Nie2BwnXWmaCCfW7FUhaxQLb3UG</id>
              <identifier>nullopt_t</identifier>
            </identifier>
          </name>
        </named>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>&lt;=&gt;</overloadedOperator>
</function>
<function>
  <name>operator&lt;=&gt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1338</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>159</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>3CXfxZXbwPmdooJDcc1wvMNdxsCZ</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Three-way comparison operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The relative order of the objects</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>x</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>y</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>2oQwqEvHsa4jHyvzZ2Dft6tTVQVJ</id>
          <identifier>compare_three_way_result_t</identifier>
          <prefix>
            <identifier>
              <kind>identifier</kind>
              <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
              <identifier>std</identifier>
            </identifier>
          </prefix>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <identifier>T</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <identifier>U</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>x</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>U</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>y</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>class</keyKind>
        <constraint>
          <specialization>
            <kind>specialization</kind>
            <id>W4WdcjYWYzWUhDm3AyfaDTV6XB3</id>
            <identifier>three_way_comparable_with</identifier>
            <prefix>
              <identifier>
                <kind>identifier</kind>
                <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
                <identifier>std</identifier>
              </identifier>
            </prefix>
            <templateArgs>
              <type>
                <kind>type</kind>
                <type>
                  <named>
                    <kind>named</kind>
                    <name>
                      <identifier>
                        <kind>identifier</kind>
                        <identifier>T</identifier>
                      </identifier>
                    </name>
                  </named>
                </type>
              </type>
            </templateArgs>
          </specialization>
        </constraint>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>&lt;=&gt;</overloadedOperator>
</function>
<function>
  <name>operator&lt;=&gt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1349</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>165</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2CXMJgmqh56x65vbspGAqs13WT3f</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Three-way comparison operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The relative order of the objects</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>x</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>rhs</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <id>3k2uwCJKHuMhuR8wQ83kh9SVn7RX</id>
          <identifier>strong_ordering</identifier>
          <prefix>
            <identifier>
              <kind>identifier</kind>
              <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
              <identifier>std</identifier>
            </identifier>
          </prefix>
        </identifier>
      </name>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>x</name>
    </param>
    <param>
      <type>
        <named>
          <kind>named</kind>
          <name>
            <identifier>
              <kind>identifier</kind>
              <id>3Nie2BwnXWmaCCfW7FUhaxQLb3UG</id>
              <identifier>nullopt_t</identifier>
            </identifier>
          </name>
        </named>
      </type>
      <name>rhs</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>&lt;=&gt;</overloadedOperator>
</function>
<function>
  <name>operator&lt;=&gt;</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>1439</lineNumber>
      <columnNumber>1</columnNumber>
    </defLoc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>217</lineNumber>
        <columnNumber>1</columnNumber>
      </location>
    </loc>
  </loc>
  <kind>function</kind>
  <id>2qWBTqSQJpUKPd4ixiJgTsZjQYxu</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Three-way comparison operator</literal>
        </text>
      </children>
    </brief>
    <returns>
      <returns>
        <kind>returns</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The relative order of the objects</literal>
          </text>
        </children>
      </returns>
    </returns>
    <params>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The left operand</literal>
          </text>
        </children>
        <name>x</name>
      </param>
      <param>
        <kind>param</kind>
        <children>
          <text>
            <kind>text</kind>
            <literal>The right operand</literal>
          </text>
        </children>
        <name>v</name>
      </param>
    </params>
    <relates>
      <reference>
        <kind>reference</kind>
        <literal>optional</literal>
        <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
      </reference>
    </relates>
  </doc>
  <returnType>
    <named>
      <kind>named</kind>
      <name>
        <specialization>
          <kind>specialization</kind>
          <id>2oQwqEvHsa4jHyvzZ2Dft6tTVQVJ</id>
          <identifier>compare_three_way_result_t</identifier>
          <prefix>
            <identifier>
              <kind>identifier</kind>
              <id>2gQYpYhLmwB2jja6qUZm6ZYuK3Xy</id>
              <identifier>std</identifier>
            </identifier>
          </prefix>
          <templateArgs>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <identifier>T</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
            <type>
              <kind>type</kind>
              <type>
                <named>
                  <kind>named</kind>
                  <name>
                    <identifier>
                      <kind>identifier</kind>
                      <identifier>U</identifier>
                    </identifier>
                  </name>
                </named>
              </type>
            </type>
          </templateArgs>
        </specialization>
      </name>
    </named>
  </returnType>
  <params>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <specialization>
                  <kind>specialization</kind>
                  <id>stKSn11E1qjWG8dGch9b86RSgUw</id>
                  <identifier>optional</identifier>
                  <templateArgs>
                    <type>
                      <kind>type</kind>
                      <type>
                        <named>
                          <kind>named</kind>
                          <name>
                            <identifier>
                              <kind>identifier</kind>
                              <identifier>T</identifier>
                            </identifier>
                          </name>
                        </named>
                      </type>
                    </type>
                  </templateArgs>
                </specialization>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>x</name>
    </param>
    <param>
      <type>
        <lValueReference>
          <kind>lvalue-reference</kind>
          <pointeeType>
            <named>
              <kind>named</kind>
              <isConst/>
              <name>
                <identifier>
                  <kind>identifier</kind>
                  <identifier>U</identifier>
                </identifier>
              </name>
            </named>
          </pointeeType>
        </lValueReference>
      </type>
      <name>v</name>
    </param>
  </params>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>typename</keyKind>
      </type>
      <type>
        <kind>type</kind>
        <name>U</name>
        <keyKind>typename</keyKind>
      </type>
    </params>
    <requires>(!is_derived_from_optional&lt;U&gt;) &amp;&amp; std::three_way_comparable_with&lt;T, U&gt;</requires>
  </template>
  <funcClass>normal</funcClass>
  <constexpr>constexpr</constexpr>
  <overloadedOperator>&lt;=&gt;</overloadedOperator>
</function>
<variable>
  <name>in_place</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>71</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>variable</kind>
  <id>ctwYE4fu42JWMPinWAy1ftKZh4k</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Tag for in-place construction</literal>
        </text>
      </children>
    </brief>
  </doc>
  <type>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <id>3AHKaMhiP2J4hfuP4o1BW8ujCUpJ</id>
          <identifier>in_place_t</identifier>
        </identifier>
      </name>
    </named>
  </type>
  <initializer>in_place{}</initializer>
  <isInline/>
  <isConstexpr/>
</variable>
<variable>
  <name>nullopt</name>
  <loc>
    <defLoc>
      <shortPath>beman/optional/optional.hpp</shortPath>
      <sourcePath>include/beman/optional/optional.hpp</sourcePath>
      <lineNumber>135</lineNumber>
      <columnNumber>1</columnNumber>
      <documented/>
    </defLoc>
  </loc>
  <kind>variable</kind>
  <id>2Hpd2TcJ1vTsWuNVtSbDCVjY9Q1C</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Tag to disengage optional objects.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <type>
    <named>
      <kind>named</kind>
      <name>
        <identifier>
          <kind>identifier</kind>
          <id>3Nie2BwnXWmaCCfW7FUhaxQLb3UG</id>
          <identifier>nullopt_t</identifier>
        </identifier>
      </name>
    </named>
  </type>
  <initializer>nullopt{nullopt_t::Tag::tag}</initializer>
  <isInline/>
  <isConstexpr/>
</variable>
<concept>
  <name>is_derived_from_optional</name>
  <loc>
    <loc>
      <location>
        <shortPath>beman/optional/optional.hpp</shortPath>
        <sourcePath>include/beman/optional/optional.hpp</sourcePath>
        <lineNumber>104</lineNumber>
        <columnNumber>1</columnNumber>
        <documented/>
      </location>
    </loc>
  </loc>
  <kind>concept</kind>
  <id>4SeFhEaj8BfXQTn7keHmdx7qpTPP</id>
  <extraction>regular</extraction>
  <parent>2Vwi1prA99ZTyyhyL8PEvuw4XTFC</parent>
  <doc>
    <brief>
      <kind>brief</kind>
      <children>
        <text>
          <kind>text</kind>
          <literal>Concept for checking if derived from optional.</literal>
        </text>
      </children>
    </brief>
  </doc>
  <template>
    <params>
      <type>
        <kind>type</kind>
        <name>T</name>
        <keyKind>class</keyKind>
      </type>
    </params>
  </template>
  <constraint>requires(const T&amp; t) { // exposition only
    []&lt;class U&gt;(const optional&lt;U&gt;&amp;) {}(t);
}</constraint>
</concept>
</mrdocs>
