$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r86278 - in trunk/tools/boostbook: test/doxygen test/doxygen/boost xsl/doxygen
From: dnljms_at_[hidden]
Date: 2013-10-12 19:54:00
Author: danieljames
Date: 2013-10-12 19:53:59 EDT (Sat, 12 Oct 2013)
New Revision: 86278
URL: http://svn.boost.org/trac/boost/changeset/86278
Log:
Fix support for const, volatile, and pure virtual.
Text files modified: 
   trunk/tools/boostbook/test/doxygen/autodoc.gold         |     4 ++++                                    
   trunk/tools/boostbook/test/doxygen/boost/example.hpp    |     5 +++++                                   
   trunk/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl |    19 +++++++++++--------                     
   3 files changed, 20 insertions(+), 8 deletions(-)
Modified: trunk/tools/boostbook/test/doxygen/autodoc.gold
==============================================================================
--- trunk/tools/boostbook/test/doxygen/autodoc.gold	Sat Oct 12 16:11:47 2013	(r86277)
+++ trunk/tools/boostbook/test/doxygen/autodoc.gold	2013-10-12 19:53:59 EDT (Sat, 12 Oct 2013)	(r86278)
@@ -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>
Modified: trunk/tools/boostbook/test/doxygen/boost/example.hpp
==============================================================================
--- trunk/tools/boostbook/test/doxygen/boost/example.hpp	Sat Oct 12 16:11:47 2013	(r86277)
+++ trunk/tools/boostbook/test/doxygen/boost/example.hpp	2013-10-12 19:53:59 EDT (Sat, 12 Oct 2013)	(r86278)
@@ -35,8 +35,13 @@
         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;
 
Modified: trunk/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl
==============================================================================
--- trunk/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl	Sat Oct 12 16:11:47 2013	(r86277)
+++ trunk/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl	2013-10-12 19:53:59 EDT (Sat, 12 Oct 2013)	(r86278)
@@ -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>