mirror of
https://github.com/boostorg/boostbook.git
synced 2025-05-09 15:03:57 +00:00
Fix support for const, volatile, and pure virtual.
[SVN r86278]
This commit is contained in:
parent
78ba0b7b6e
commit
e20b8195e1
@ -15,7 +15,11 @@
|
||||
<data-member name="static_const_integer" specifiers="static"><type>const int</type></data-member>
|
||||
<method-group name="public member functions">
|
||||
<method name="virtual_method"><type>virtual int</type></method>
|
||||
<method name="virtual_abstract_method" cv="= 0"><type>virtual int</type></method>
|
||||
<method name="virtual_const_method" cv="const"><type>virtual int</type></method>
|
||||
<method name="method_with_default_value"><type>int</type><parameter name=""><paramtype>int</paramtype><default>default_value</default></parameter></method>
|
||||
<method name="const_method" cv="const"><type>void</type></method>
|
||||
<method name="volatile_method" cv="volatile"><type>void</type></method>
|
||||
<method name="trad_noexcept" cv="noexcept"><type>void</type></method>
|
||||
<method name="boost_noexcept" cv="noexcept"><type>void</type></method>
|
||||
<method name="trad_constexpr" cv="constexpr"><type>void</type></method>
|
||||
|
@ -35,8 +35,13 @@ namespace example
|
||||
example(example const&) = default;
|
||||
example& operator=(example const&) = delete;
|
||||
virtual int virtual_method();
|
||||
virtual int virtual_abstract_method() = 0;
|
||||
virtual int virtual_const_method() const;
|
||||
int method_with_default_value(int = default_value);
|
||||
|
||||
void const_method() const;
|
||||
void volatile_method() volatile;
|
||||
|
||||
void trad_noexcept() noexcept;
|
||||
void boost_noexcept() BOOST_NOEXCEPT;
|
||||
|
||||
|
@ -1070,18 +1070,21 @@
|
||||
<!-- Plus deleted and defaulted function markers as they're not properly
|
||||
supported in boostbook -->
|
||||
<!-- The 'substring' trick includes the string if the condition is true -->
|
||||
<xsl:variable name="constexpr" select="
|
||||
contains($extra-qualifiers, ' const expr ') or
|
||||
contains($extra-qualifiers, ' BOOST_CONSTEXPR ') or
|
||||
contains($extra-qualifiers, ' BOOST_CONSTEXPR_OR_CONST ')" />
|
||||
|
||||
<xsl:variable name="cv-qualifiers" select="normalize-space(concat(
|
||||
substring('constexpr ', 1, 999 * (
|
||||
contains($extra-qualifiers, ' const expr ') or
|
||||
contains($extra-qualifiers, ' BOOST_CONSTEXPR ') or
|
||||
contains($extra-qualifiers, ' BOOST_CONSTEXPR_OR_CONST '))),
|
||||
substring('const ', 1, 999 * (@const=yes)),
|
||||
substring('volatile ', 1, 999 * (@volatile=yes)),
|
||||
substring('constexpr ', 1, 999 * $constexpr),
|
||||
substring('const ', 1, 999 * (not($constexpr) and @const='yes')),
|
||||
substring('volatile ', 1, 999 * (@volatile='yes' or contains($extra-qualifiers, ' volatile '))),
|
||||
substring('noexcept ', 1, 999 * (
|
||||
contains($extra-qualifiers, ' noexcept ') or
|
||||
contains($extra-qualifiers, ' BOOST_NOEXCEPT '))),
|
||||
substring('= delete ', 1, 999 * contains($extra-qualifiers, ' =delete ')),
|
||||
substring('= default ', 1, 999 * contains($extra-qualifiers, ' =default ')),
|
||||
substring('= 0 ', 1, 999 * (@virt = 'pure-virtual')),
|
||||
''))" />
|
||||
|
||||
<xsl:if test="$cv-qualifiers">
|
||||
@ -1245,7 +1248,7 @@
|
||||
<!-- Return type -->
|
||||
<xsl:element name="type">
|
||||
<!-- Cheat on virtual and static by dropping them into the type -->
|
||||
<xsl:if test="@virtual='yes' or @virt='virtual'">
|
||||
<xsl:if test="@virtual='yes' or @virt='virtual' or @virt='pure-virtual'">
|
||||
<xsl:text>virtual </xsl:text>
|
||||
</xsl:if>
|
||||
|
||||
@ -1290,7 +1293,7 @@
|
||||
<xsl:text>static </xsl:text>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:if test="@virtual='yes' or @virt='virtual'">
|
||||
<xsl:if test="@virtual='yes' or @virt='virtual' or @virt='pure-virtual'">
|
||||
<xsl:text>virtual </xsl:text>
|
||||
</xsl:if>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user