<?xml version="1.0" encoding="UTF-8"?>
<db:article xmlns:db="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.2" xml:lang="en">
<db:info>
<db:title>TestQDoc::Test Class</db:title>
<db:productname>Qt</db:productname>
<db:titleabbrev>TestTemplate Reference Documentation</db:titleabbrev>
<db:abstract>
<db:para>A class in a namespace.</db:para>
<db:para>This class was introduced in Qt 2.0.</db:para>
<db:note>
<db:para>All functions in this class are <db:link xlink:href="https://doc.qt.io/qt/17-qdoc-commands-thread.html#reentrant-command">reentrant</db:link> with the following exceptions:</db:para>
<db:para>These functions are not <db:link xlink:href="https://doc.qt.io/qt/17-qdoc-commands-thread.html#reentrant-command">reentrant</db:link>:</db:para>
<db:itemizedlist>
<db:listitem>
<db:para><db:link xlink:href="testqdoc-test.xml#someFunctionDefaultArg">someFunctionDefaultArg(int i, bool b) const</db:link></db:para>
</db:listitem>
</db:itemizedlist>
</db:note>
</db:abstract>
</db:info>
<db:variablelist>
<db:varlistentry>
<db:term>Header</db:term>
<db:listitem>
<db:para>testcpp.h</db:para>
</db:listitem>
</db:varlistentry>
<db:varlistentry>
<db:term>Since</db:term>
<db:listitem>
<db:para>Qt 2.0</db:para>
</db:listitem>
</db:varlistentry>
<db:varlistentry>
<db:term>CMake</db:term>
<db:listitem>
<db:para>find_package(Qt6 REQUIRED COMPONENTS QDocTest)</db:para>
<db:para>target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</db:para>
</db:listitem>
</db:varlistentry>
<db:varlistentry>
<db:term>qmake</db:term>
<db:listitem>
<db:para>QT += testcpp</db:para>
</db:listitem>
</db:varlistentry>
<db:varlistentry>
<db:term>Inherited By</db:term>
<db:listitem>
<db:para><db:link xlink:href="testqdoc-testderived.xml" xlink:role="class">TestQDoc::TestDerived</db:link></db:para>
</db:listitem>
</db:varlistentry>
<db:varlistentry>
<db:term>Group</db:term>
<db:listitem>
<db:para>Test is part of <db:simplelist><db:member>testgroup</db:member><db:member><db:link xlink:href="cpptypes.xml">Test C++ Types</db:link></db:member></db:simplelist>
</db:para>
</db:listitem>
</db:varlistentry>
</db:variablelist>
<db:section xml:id="details">
<db:title>Detailed Description</db:title>
</db:section>
<db:section xml:id="member-type-documentation">
<db:title>Member Type Documentation</db:title>
<db:section xml:id="SomeType-typedef">
<db:title>Test::SomeType</db:title>
<db:para>A typedef.</db:para>
</db:section>
<db:section xml:id="Specialized-typedef">
<db:title>[alias] template &lt;typename T&gt; Test::Specialized</db:title>
<db:para><db:code role="parameter">T</db:code> is the specialization type.</db:para>
</db:section>
</db:section>
<db:section xml:id="member-function-documentation">
<db:title>Member Function Documentation</db:title>
<db:section xml:id="funcPtr">
<db:title>void (*)(bool) Test::funcPtr(bool <db:emphasis>b</db:emphasis>, const char *<db:emphasis>s</db:emphasis>)</db:title>
<db:para>Returns a pointer to a function that takes a boolean. Uses <db:code role="parameter">b</db:code> and <db:code role="parameter">s</db:code>.</db:para>
</db:section>
<db:section xml:id="funcTemplate">
<db:title>[protected] template &lt;typename T1, typename T2&gt; void Test::funcTemplate(T1 <db:emphasis>a</db:emphasis>, T2 <db:emphasis>b</db:emphasis>)</db:title>
<db:para>Function template with two parameters, <db:code role="parameter">a</db:code> and <db:code role="parameter">b</db:code>.</db:para>
</db:section>
<db:section xml:id="inlineFunction">
<db:title>void Test::inlineFunction()</db:title>
<db:para>An inline function, documented using the <db:phrase>\fn</db:phrase> QDoc command.</db:para>
</db:section>
<db:section xml:id="methodWithEmDashInItsDocs">
<db:title>void Test::methodWithEmDashInItsDocs()</db:title>
<db:para>This method has em dashes in its documentation—as you'll find represented by <db:code>---</db:code> in the sources—here and there. The important bit to note is that when passed e.g. to the <db:phrase>\c</db:phrase> command, the three hyphens are processed as input to the command and not replaced by an em dash.</db:para>
<db:para>-----------------------------------------------------------------------</db:para>
<db:para>People can still add a bunch of dashes, though, without QDoc replacing them all with a series of em dashes.</db:para>
<db:para>—You can also start a new paragraph with an em dash, if you want to.</db:para>
<db:section>
<db:title>See Also</db:title>
<db:para><db:emphasis>See also </db:emphasis>
<db:simplelist type="vert" role="see-also">
<db:member><db:link xlink:href="testqdoc-test.xml#methodWithEnDashInItsDocs">methodWithEnDashInItsDocs</db:link></db:member>
</db:simplelist>
</db:para>
</db:section>
</db:section>
<db:section xml:id="methodWithEnDashInItsDocs">
<db:title>void Test::methodWithEnDashInItsDocs()</db:title>
<db:para>This method has en dashes in its documentation – as you'll find represented by <db:code>--</db:code> in the sources – here and there. The important bit to note is that when passed e.g. to the <db:phrase>\c</db:phrase> command, the two hyphens are processed as input to the command and not replaced by an en dash. This also applies to code blocks, where otherwise, the decrement operator would get completely borked:</db:para>
<db:programlisting language="cpp">for (int i = 42; i &gt; 0; --i)
    // Do something cool during countdown.
</db:programlisting>
<db:para>...as it would be silly if this would output –i instead of <db:code>--i</db:code>.</db:para>
<db:para>-----------------------------------------------------------------------</db:para>
<db:para>It still allows people to add a bunch of dashes, though, without replacing them all with a series of en dashes. Of course, they might want to use the <db:phrase>\hr</db:phrase> command instead, like this:</db:para>
<db:para>– You can also start a new paragraph with an en dash, if you want to.</db:para>
<db:section>
<db:title>See Also</db:title>
<db:para><db:emphasis>See also </db:emphasis>
<db:simplelist type="vert" role="see-also">
<db:member><db:link xlink:href="">methodWithEnDashInItsDocs</db:link></db:member>
</db:simplelist>
</db:para>
</db:section>
</db:section>
<db:section xml:id="overload">
<db:title>[protected] void Test::overload()</db:title>
<db:bridgehead renderas="sect2" xml:id="overload-1">[protected, since Test 1.2] void Test::overload(bool <db:emphasis>b</db:emphasis>)</db:bridgehead>
<db:para>Overloads that share a documentation comment, optionally taking a parameter <db:code role="parameter">b</db:code>.</db:para>
</db:section>
<db:section xml:id="someFunction">
<db:title>int Test::someFunction(<db:emphasis>int</db:emphasis>, int <db:emphasis>v</db:emphasis> = 0)</db:title>
<db:para>Function that takes a parameter <db:code role="parameter">v</db:code>. Also returns the value of <db:code role="parameter">v</db:code>.</db:para>
</db:section>
<db:section xml:id="someFunctionDefaultArg">
<db:title>void Test::someFunctionDefaultArg(int <db:emphasis>i</db:emphasis>, bool <db:emphasis>b</db:emphasis> = false) const</db:title>
<db:para>Function that takes a parameter <db:code role="parameter">i</db:code> and <db:code role="parameter">b</db:code>.</db:para>
<db:warning>
<db:para>This function is not <db:link xlink:href="https://doc.qt.io/qt/17-qdoc-commands-thread.html#reentrant-command">reentrant</db:link>.</db:para>
</db:warning></db:section>
<db:section xml:id="virtualFun">
<db:title>[virtual] void Test::virtualFun()</db:title>
<db:para>Function that must be reimplemented.</db:para>
</db:section>
</db:section>
<db:section xml:id="related-non-members">
<db:title>Related Non-Members</db:title>
<db:section xml:id="operator-eq-eq">
<db:title>bool operator==(const TestQDoc::Test &amp;<db:emphasis>lhs</db:emphasis>, const TestQDoc::Test &amp;<db:emphasis>rhs</db:emphasis>)</db:title>
<db:para>Returns true if <db:code role="parameter">lhs</db:code> and <db:code role="parameter">rhs</db:code> are equal.</db:para>
</db:section>
</db:section>
<db:section xml:id="macro-documentation">
<db:title>Macro Documentation</db:title>
<db:section xml:id="QDOCTEST_MACRO2">
<db:title>[since Test 1.1] QDOCTEST_MACRO2(int &amp;<db:emphasis>x</db:emphasis>)</db:title>
<db:para>A macro with argument <db:code role="parameter">x</db:code>.</db:para>
<db:para>This macro was introduced in Test 1.1.</db:para>
</db:section>
<db:section xml:id="Q_INVOKABLE">
<db:title>Q_INVOKABLE</db:title>
<db:para>This is a mock Q_INVOKABLE for the purpose of ensuring QDoc autolink to it as expected.</db:para>
</db:section>
</db:section>
<db:section xml:id="obsolete">
<db:title>Obsolete Members for TestQDoc::Test</db:title>
<db:para><db:emphasis role="bold">The following members of class <db:link xlink:href="testqdoc-test.xml">Test</db:link> are deprecated.</db:emphasis> We strongly advise against using them in new code.</db:para>
<db:section xml:id="obsolete-member-function-documentation">
<db:title>Obsolete Member Function Documentation</db:title>
<db:section xml:id="anotherObsoleteMember">
<db:title>[deprecated] void Test::anotherObsoleteMember()</db:title>
<db:para>This function is deprecated. We strongly advise against using it in new code.</db:para>
<db:para>Use <db:link xlink:href="testqdoc-test.xml#obsoleteMember">obsoleteMember</db:link>() instead.</db:para>
</db:section>
<db:section xml:id="deprecatedMember">
<db:title>[deprecated in 6.0] void Test::deprecatedMember()</db:title>
<db:para>This function is deprecated since 6.0. We strongly advise against using it in new code.</db:para>
<db:para>Use <db:link xlink:href="testqdoc-test.xml#someFunction">someFunction</db:link>() instead.</db:para>
</db:section>
<db:section xml:id="obsoleteMember">
<db:title>[deprecated] void Test::obsoleteMember()</db:title>
<db:para>This function is deprecated. We strongly advise against using it in new code.</db:para>
<db:para>Use <db:link xlink:href="testqdoc-test.xml#someFunction">someFunction</db:link>() instead.</db:para>
</db:section>
<db:section xml:id="operator-2b-2b">
<db:title>[deprecated] TestQDoc::Test &amp;Test::operator++()</db:title>
<db:bridgehead renderas="sect2" xml:id="operator--">[deprecated] TestQDoc::Test &amp;Test::operator--()</db:bridgehead>
<db:para>This function is deprecated. We strongly advise against using it in new code.</db:para>
</db:section>
</db:section>
</db:section>
</db:article>
