<?xml version="1.0" encoding="UTF-8"?>
<WebXML>
    <document>
        <class name="HiddenFriendsClass" href="hiddenfriendsclass.html" status="active" access="public" location="hiddenfriendsclass.h" documented="true" module="CompletelyHidden" brief="A test class demonstrating hidden friend functions">
            <description>
                <brief>A test class demonstrating hidden friend functions.</brief>
                <para>This class contains hidden friend functions declared in the private section. These should appear in documentation regardless of includeprivate setting because they have public visibility through ADL.</para>
            </description>
            <function name="HiddenFriendsClass" fullname="HiddenFriendsClass::HiddenFriendsClass" href="hiddenfriendsclass.html#HiddenFriendsClass" status="active" access="public" location="hiddenfriendsclass.h" documented="true" meta="constructor" brief="Public constructor" signature="HiddenFriendsClass()">
                <description>
                    <brief>Public constructor.</brief>
                    <para>Creates a <link raw="HiddenFriendsClass" href="hiddenfriendsclass.html" type="class">HiddenFriendsClass</link> instance.</para>
                </description>
            </function>
            <function name="operator==" href="hiddenfriendsclass.html#operator-eq-eq" status="active" access="public" location="hiddenfriendsclass.h" documented="true" related="0" meta="plain" type="bool" brief="Hidden friend equality operator" signature="bool operator==(const HiddenFriendsClass &amp;lhs, const HiddenFriendsClass &amp;rhs)">
                <parameter type="const HiddenFriendsClass &amp;" name="lhs" default=""/>
                <parameter type="const HiddenFriendsClass &amp;" name="rhs" default=""/>
                <description>
                    <brief>Hidden friend equality operator.</brief>
                    <para>This hidden friend should appear in documentation despite being declared in the private section, because it has public visibility through argument-dependent lookup (ADL).</para>
                    <para>
                        <argument>lhs</argument> Left-hand side operand. <argument>rhs</argument> Right-hand side operand.</para>
                    <para>Returns <teletype type="highlighted">true</teletype> if objects are equal.</para>
                </description>
            </function>
            <function name="privateMethod" fullname="HiddenFriendsClass::privateMethod" href="hiddenfriendsclass.html#privateMethod" status="active" access="private" location="hiddenfriendsclass.h" documented="true" meta="plain" type="void" brief="Private member function" signature="void privateMethod()">
                <description>
                    <brief>Private member function.</brief>
                    <para>This should NOT appear when includeprivate is false.</para>
                </description>
            </function>
            <function name="publicMethod" fullname="HiddenFriendsClass::publicMethod" href="hiddenfriendsclass.html#publicMethod" status="active" access="public" location="hiddenfriendsclass.h" documented="true" meta="plain" type="void" brief="Public member function" signature="void publicMethod()">
                <description>
                    <brief>Public member function.</brief>
                    <para>This should always appear in documentation.</para>
                </description>
            </function>
            <function name="swap" href="hiddenfriendsclass.html#swap" status="active" access="public" location="hiddenfriendsclass.h" documented="true" related="1" meta="plain" type="void" brief="Hidden friend swap function" signature="void swap(HiddenFriendsClass &amp;a, HiddenFriendsClass &amp;b)">
                <parameter type="HiddenFriendsClass &amp;" name="a" default=""/>
                <parameter type="HiddenFriendsClass &amp;" name="b" default=""/>
                <description>
                    <brief>Hidden friend swap function.</brief>
                    <para>This hidden friend should also appear in documentation. Uses the standard swap idiom.</para>
                    <para>
                        <argument>a</argument> First object to swap. <argument>b</argument> Second object to swap.</para>
                </description>
            </function>
        </class>
    </document>
</WebXML>
