mirror of
https://github.com/boostorg/boostbook.git
synced 2025-05-08 18:33:58 +00:00
When there are multiple \throws entries in a function documentation, the second and further exception names were omitted from output and a combined description was associated with the first exception. Fix this by producing separate paragraphs, one per exception. Additionally, support free form exception description when the exception type is specified as "~". In this case, the exception name is not used, and the entry description is used to initialize the paragraph in the output. Updated test to verify these changes.
127 lines
16 KiB
XML
127 lines
16 KiB
XML
<?xml version="1.0" standalone="yes"?>
|
|
<library-reference id="example_reference"><title>Example Reference</title><header id="doxygen.example_reference.example_8hpp" name="boost/example.hpp">
|
|
<namespace name="example">
|
|
<class id="doxygen.example_reference.classexample_1_1example" name="example"><purpose>Documentation for class example. </purpose><description><para>Detailed documentation</para><para><programlisting language="c++">void class_code_sample();
|
|
</programlisting> </para></description><class id="doxygen.example_reference.classexample_1_1example_1_1inner__class" name="inner_class"><data-member id="doxygen.example_reference.classexample_1_1example_1_1inner__class_1ac614c06aa452469dc84b7bdd12170aa0" name="x"><type>int</type></data-member>
|
|
</class><enum id="doxygen.example_reference.classexample_1_1example_1a0b6c6b5aff0fb772025b1a6884b20f8a" name="class_enum"><enumvalue id="doxygen.example_reference.classexample_1_1example_1a0b6c6b5aff0fb772025b1a6884b20f8aa7a5cd5e0c560f3500f5d9331476ac849" name="enumerator"/></enum>
|
|
<typedef id="doxygen.example_reference.classexample_1_1example_1ad63b87a546d00766ecd1575c3a7ecea7" name="documented_type1"><description><para>This type has documentation. </para></description><type>int</type></typedef>
|
|
<typedef id="doxygen.example_reference.classexample_1_1example_1a82838c6c77fbcd8ccaa427ed8dea13d4" name="documented_type2"><purpose>This type has documentation. </purpose><type>long</type></typedef>
|
|
<typedef id="doxygen.example_reference.classexample_1_1example_1aacd4626361b31f0e40dfb6284abda4ee" name="documented_type3"><description><para>This type has documentation. </para></description><type>long double</type></typedef>
|
|
<typedef id="doxygen.example_reference.classexample_1_1example_1a51a56cbe77a112be3fd45b60f80d87f8" name="undocumented_type1"><type>short</type></typedef>
|
|
<typedef id="doxygen.example_reference.classexample_1_1example_1a041b00063109f55f4c25483dfbb2d210" name="undocumented_type2"><type>double</type></typedef>
|
|
<data-member id="doxygen.example_reference.classexample_1_1example_1a42e10df81788834c5dffc9d918d1429d" name="integer"><type>int</type></data-member>
|
|
<data-member id="doxygen.example_reference.classexample_1_1example_1a14cfa0dd95638f07dca4bd1ee0cab0b2" name="mutable_integer" specifiers="mutable"><type>int</type></data-member>
|
|
<data-member id="doxygen.example_reference.classexample_1_1example_1a3ac926fba2823481c69f2c8a82b0de70" name="const_integer"><type>const int</type></data-member>
|
|
<data-member id="doxygen.example_reference.classexample_1_1example_1aa18fb135936bc5fc37bc778e0c247e48" name="static_integer" specifiers="static"><type>int</type></data-member>
|
|
<data-member id="doxygen.example_reference.classexample_1_1example_1a292e39fe25fd2adec252987fb7f6887d" name="static_const_integer" specifiers="static"><type>const int</type></data-member>
|
|
<method-group name="public member functions">
|
|
<constructor id="doxygen.example_reference.classexample_1_1example_1a19b27b70d9c7459d13f12dff227252a6" cv="= default"><parameter name=""><paramtype><classname>example</classname> const &</paramtype></parameter></constructor>
|
|
<copy-assignment id="doxygen.example_reference.classexample_1_1example_1a052088e28fe7735bf0764133ba40b8b0" cv="= delete"><type><classname>example</classname> &</type><parameter name=""><paramtype><classname>example</classname> const &</paramtype></parameter></copy-assignment>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1ab2bdbdf135a702f660e50c26ca9378da" name="virtual_method" specifiers="virtual"><type>int</type></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1a87f3722f5689c3a2e1692d817fe31fb0" name="virtual_abstract_method" cv="= 0" specifiers="virtual"><type>int</type></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1af246a7a937361f2df6d8cd2e1f9cc97c" name="virtual_const_method" cv="const" specifiers="virtual"><type>int</type></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1a4c9dda64892a30b49e8b36598f829e5f" name="method_with_default_value"><type>int</type><parameter name=""><paramtype>int</paramtype><default>default_value</default></parameter></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1a00ee7615aa7f639fa100654e18c2ec7e" name="method_with_fp"><type>int</type><parameter name="fp"><paramtype>int(*)()</paramtype></parameter><parameter name=""><paramtype>volatile char</paramtype></parameter></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1a21a7e932cbac009a2d0953f8bc1b63bb" name="method_with_string_default1"><type>int</type><parameter name=""><paramtype>char *</paramtype><default>")"</default></parameter><parameter name=""><paramtype>volatile char</paramtype></parameter></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1acb5d54e553e4b4f9be4f022cf739c16d" name="method_with_string_default2"><type>int</type><parameter name=""><paramtype>char *</paramtype><default>"("</default></parameter><parameter name=""><paramtype>volatile char</paramtype></parameter></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1aeb0740767eb13951bcbd6be9482afa6e" name="method_with_char_default1"><type>int</type><parameter name=""><paramtype>char</paramtype><default>'('</default></parameter><parameter name=""><paramtype>volatile char</paramtype></parameter></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1a2ccc637ca77e489be094f0081ccc1013" name="method_with_char_default2"><type>int</type><parameter name=""><paramtype>char</paramtype><default>')'</default></parameter><parameter name=""><paramtype>volatile char</paramtype></parameter></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1acc49314f2ac3126967bed8a2dbad744c" name="volatile_method_with_fp" cv="volatile"><type>int</type><parameter name="fp"><paramtype>int(*)()</paramtype></parameter><parameter name=""><paramtype>volatile char</paramtype></parameter></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1a685217502ec2e7465f379c7e86af7b3e" name="volatile_method_with_string_default1" cv="volatile"><type>int</type><parameter name=""><paramtype>char *</paramtype><default>")"</default></parameter><parameter name=""><paramtype>volatile char</paramtype></parameter></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1ab8c7fe51d0ca272d46c7e78408c410b9" name="volatile_method_with_string_default2" cv="volatile"><type>int</type><parameter name=""><paramtype>char *</paramtype><default>"("</default></parameter><parameter name=""><paramtype>volatile char</paramtype></parameter></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1a1198ef188dd17b326a593ae0ee92e840" name="volatile_method_with_char_default1" cv="volatile"><type>int</type><parameter name=""><paramtype>char</paramtype><default>'('</default></parameter><parameter name=""><paramtype>volatile char</paramtype></parameter></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1a44fd2d43a6c4bf5433c756c304a5874c" name="volatile_method_with_char_default2" cv="volatile"><type>int</type><parameter name=""><paramtype>char</paramtype><default>')'</default></parameter><parameter name=""><paramtype>volatile char</paramtype></parameter></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1af85b7abc9f26301b923d6f9374f7526f" name="const_method" cv="const"><type>void</type></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1a2f14e986068ccac584d44d3d3b3db866" name="volatile_method" cv="volatile"><type>void</type></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1a022431600a333e3fbb7ec43d5b80728e" name="trad_noexcept" cv="noexcept"><type>void</type></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1add98ba3be9dfc459e23bc839ecdb5eb7" name="trad_noexcept_if" cv="noexcept(a==b &&(c||d))"><type>void</type></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1a5bdf6e79fa4e2df7c1dcad5e7cf170df" name="boost_noexcept" cv="noexcept"><type>void</type></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1a8c045ee60b4befef03dc7cfe3e2d5d94" name="boost_noexcept_if" cv="noexcept(condition)"><type>void</type></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1ad51b091c3b30246985bfa005f4b2461b" name="trad_constexpr" cv="constexpr"><type>void</type></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1a8de98caff0ca92f1bf80f5eb3259f36e" name="boost_constexpr" cv="constexpr"><type>void</type></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1a36cb47f31e1c4d16a26c5adef3afe1b8" name="boost_constexpr_or_const" cv="constexpr"><type>void</type></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1aa838b0aa12e0d7dc9f35343998a5c3c3" name="constexpr_noexcept" cv="constexpr noexcept"><type>void</type></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1a8926190cefda780e05916bdfa8f909a9" name="conversion-operator" specifiers="explicit"><type>int</type></method>
|
|
</method-group>
|
|
<method-group name="public static functions">
|
|
<method id="doxygen.example_reference.classexample_1_1example_1adf9547724924727d26d79a3ceb3c58e9" name="static_method" specifiers="static"><type>int</type></method>
|
|
<method id="doxygen.example_reference.classexample_1_1example_1a0affbcc5d886ecc4655fdce3c319e878" name="static_constexpr" cv="constexpr" specifiers="static"><type>int</type></method>
|
|
</method-group>
|
|
</class><struct id="doxygen.example_reference.structexample_1_1example__template" name="example_template"><template>
|
|
<template-type-parameter name="TypeParameter"><purpose><para>A template parameter </para></purpose></template-type-parameter>
|
|
<template-nontype-parameter name="NonTypeParameter"><type>int</type><purpose><para>This is a non-type template parameter </para></purpose></template-nontype-parameter>
|
|
<template-type-parameter name="TypeParameterWithDefault"><default>int</default><purpose><para>This is a template parameter with a default argument </para></purpose></template-type-parameter>
|
|
</template><description><para>Test some doxygen markup</para><para><warning><para>This is just an example.</para>
|
|
</warning>
|
|
Embedded docbook list:</para><para>
|
|
<orderedlist><listitem><simpara>1</simpara></listitem><listitem><simpara>2</simpara></listitem></orderedlist>
|
|
</para><para><emphasis>Special</emphasis> <emphasis role="bold">Bold</emphasis> <computeroutput>Typewriter</computeroutput> <emphasis>Italics</emphasis> <emphasis>emphasis</emphasis> <computeroutput>parameter</computeroutput> </para><para><itemizedlist>
|
|
<listitem><para>Arg1 first argument. </para>
|
|
</listitem>
|
|
<listitem><para>Arg2 second argument.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<itemizedlist>
|
|
<listitem><para>First list item. </para>
|
|
</listitem>
|
|
<listitem><para>Second list item</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
Line 1<sbr/>
|
|
Line 2</para><para><programlisting language="c++">void foo() {}
|
|
void foo2() {}
|
|
</programlisting></para><para><programlisting language="c++">void bar() {}
|
|
|
|
void bar2() {}
|
|
</programlisting></para><para>Alternative way of writing code, has a complicated workaround because doxygen treats the empty line as a paragraph separator:</para><programlisting>
|
|
int bar();
|
|
|
|
int bar2();
|
|
</programlisting><para>Unfortunately the workaround will merge consecutive blocks, like this:</para><programlisting>
|
|
int foo();
|
|
|
|
|
|
|
|
int foo2();
|
|
</programlisting><para>
|
|
</para></description></struct><struct id="doxygen.example_reference.structexample_1_1specialization__test" name="specialization_test"><template>
|
|
<template-type-parameter name="T"/>
|
|
</template></struct><struct-specialization id="doxygen.example_reference.structexample_1_1specialization__test_3_01T_01_5_01_4" name="specialization_test"><template>
|
|
<template-type-parameter name="T"/>
|
|
</template><specialization><template-arg>T *</template-arg></specialization><method-group name="public member functions">
|
|
<constructor id="doxygen.example_reference.structexample_1_1specialization__test_3_01T_01_5_01_4_1a39ac19324a989c7fb4210083437e60a0"><description><para>A constructor. </para></description></constructor>
|
|
<destructor id="doxygen.example_reference.structexample_1_1specialization__test_3_01T_01_5_01_4_1a7a18694691d4201521e17196f96c4c91"><description><para>A destructor. </para></description></destructor>
|
|
<copy-assignment id="doxygen.example_reference.structexample_1_1specialization__test_3_01T_01_5_01_4_1a4869d58ece948f30e7f42cce63f75b33"><type><emphasis>unspecified</emphasis></type><parameter name=""><paramtype>const <classname>specialization_test</classname> &</paramtype></parameter><description><para>An assignment operator. </para></description></copy-assignment>
|
|
</method-group>
|
|
</struct-specialization><enum id="doxygen.example_reference.example_8hpp_1a0a8881f7d06080025be5a0f336ceca0d" name="namespace_enum"><enumvalue id="doxygen.example_reference.example_8hpp_1a0a8881f7d06080025be5a0f336ceca0da385e078f4946b3beaafca21a140e53d1" name="enumerator"/></enum>
|
|
<data-member id="doxygen.example_reference.example_8hpp_1a009e76bb0702b779cbc37aae1bee5884" name="namespace_integer"><type>int</type></data-member>
|
|
<data-member id="doxygen.example_reference.example_8hpp_1af51ac3ecea36f0610717f9e49b492e62" name="namespace_static_integer" specifiers="static"><type>int</type></data-member>
|
|
<data-member id="doxygen.example_reference.example_8hpp_1a072a0f39ed85f7ac668d3c32d3cfb336" name="namespace_const_integer"><type>const int</type></data-member>
|
|
<data-member id="doxygen.example_reference.example_8hpp_1a67757b75f7d21f55889f6ec0a1f809b0" name="namespace_static_const_integer" specifiers="static"><type>const int</type></data-member>
|
|
<function id="doxygen.example_reference.example_8hpp_1a3df0e5dec78e47ca7e53ce82612e1d29" name="free_function"><type>void</type><parameter name="x"><paramtype>int</paramtype><description><para>Parameter description.</para></description></parameter><description><para>
|
|
<programlisting language="c++">void function_code_sample();
|
|
</programlisting> </para></description></function>
|
|
<function id="doxygen.example_reference.example_8hpp_1addcdeb7a8901ec383539fabdc69b1ae1" name="namespace_func"><type>int</type><parameter name="i"><paramtype>int</paramtype><description><para>A function parameter </para></description></parameter><parameter name="j"><paramtype>int</paramtype><description><para>Another </para></description></parameter><description><para>
|
|
|
|
|
|
|
|
This is a test function. <link linkend="doxygen.example_reference.classexample_1_1example">Link to class</link> <link linkend="doxygen.example_reference.structexample_1_1example__template">Link to class template</link> <note><para>This is a note.</para>
|
|
</note>
|
|
<formalpara><title>See Also:</title><para><link linkend="doxygen.example_reference.classexample_1_1example">example::example</link> and <link linkend="doxygen.example_reference.structexample_1_1example__template">example_template</link> </para>
|
|
</formalpara>
|
|
</para></description><requires><para>i > j</para>
|
|
</requires><returns><para>The answer </para>
|
|
</returns><throws><simpara><classname>std::runtime_error</classname> Some error description </simpara>
|
|
<simpara><classname>std::bad_alloc</classname> Memory allocation error </simpara>
|
|
<simpara>Free form description of exception throwing </simpara>
|
|
</throws></function>
|
|
<function id="doxygen.example_reference.example_8hpp_1ae06fcc1d7c044252611b2ebb2b665e53" name="namespace_func_template"><type>void</type><template>
|
|
<template-type-parameter name="TypeParameter"><purpose><para>A template parameter </para></purpose></template-type-parameter>
|
|
<template-nontype-parameter name="NonTypeParameter"><type>int</type><purpose><para>This is a non-type template parameter </para></purpose></template-nontype-parameter>
|
|
</template><description><para>Testing a function template.
|
|
</para></description></function>
|
|
</namespace>
|
|
<macro id="doxygen.example_reference.example_8hpp_1a27aeb9b516a16c5ab8016104b8f613d1" name="EXAMPLE" kind="functionlike"><macro-parameter name="m"/><purpose>Documentation for macro example. </purpose></macro>
|
|
</header>
|
|
</library-reference>
|