diff options
author | Vladimír Vondruš <mosra@centrum.cz> | 2017-11-28 00:04:37 (GMT) |
---|---|---|
committer | Vladimír Vondruš <mosra@centrum.cz> | 2017-11-28 00:04:37 (GMT) |
commit | 21f0ca0085c034a37df07c1ab690472bada0a1f1 (patch) | |
tree | 9b4a043bd50c92a56271f5d1dbeb80b6d3392942 | |
parent | 4f45bd20d4da7d40c793ec4c4c13558581e995ac (diff) | |
download | Doxygen-21f0ca0085c034a37df07c1ab690472bada0a1f1.zip Doxygen-21f0ca0085c034a37df07c1ab690472bada0a1f1.tar.gz Doxygen-21f0ca0085c034a37df07c1ab690472bada0a1f1.tar.bz2 |
Provide template parameters also for type aliases in the XML output.
Until now, probably due to C++03 assumptions, typedefs and type
aliases skipped printing of the template parameter specifications to
the XML output. That's now fixed, so the following type alias will
properly contain <templateparamlist> in the XML output:
template<class T> using Vec = std::vector<T>;
Added also a test case that verifies this.
-rw-r--r-- | src/xmlgen.cpp | 5 | ||||
-rw-r--r-- | testing/067/067__using_8cpp.xml | 32 | ||||
-rw-r--r-- | testing/067_using.cpp | 7 |
3 files changed, 40 insertions, 4 deletions
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp index 1b03c3b..da795e9 100644 --- a/src/xmlgen.cpp +++ b/src/xmlgen.cpp @@ -789,10 +789,7 @@ static void generateXMLForMember(MemberDef *md,FTextStream &ti,FTextStream &t,De md->memberType()!=MemberType_Enumeration ) { - if (md->memberType()!=MemberType_Typedef) - { - writeMemberTemplateLists(md,t); - } + writeMemberTemplateLists(md,t); QCString typeStr = md->typeString(); //replaceAnonymousScopes(md->typeString()); stripQualifiers(typeStr); t << " <type>"; diff --git a/testing/067/067__using_8cpp.xml b/testing/067/067__using_8cpp.xml new file mode 100644 index 0000000..c278161 --- /dev/null +++ b/testing/067/067__using_8cpp.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version=""> + <compounddef id="067__using_8cpp" kind="file" language="C++"> + <compoundname>067_using.cpp</compoundname> + <sectiondef kind="typedef"> + <memberdef kind="typedef" id="067__using_8cpp_1a1b01c504448c96cd2191a5184dd31acf" prot="public" static="no"> + <templateparamlist> + <param> + <type>class T</type> + </param> + </templateparamlist> + <type>std::vector< T ></type> + <definition>using Vec = std::vector<T></definition> + <argsstring/> + <name>Vec</name> + <briefdescription> + <para>A vector. </para> + </briefdescription> + <detaileddescription> + </detaileddescription> + <inbodydescription> + </inbodydescription> + <location file="067_using.cpp" line="7" column="1" bodyfile="067_using.cpp" bodystart="7" bodyend="-1"/> + </memberdef> + </sectiondef> + <briefdescription> + </briefdescription> + <detaileddescription> + </detaileddescription> + <location file="067_using.cpp"/> + </compounddef> +</doxygen> diff --git a/testing/067_using.cpp b/testing/067_using.cpp new file mode 100644 index 0000000..eb2f5cc --- /dev/null +++ b/testing/067_using.cpp @@ -0,0 +1,7 @@ +// objective: test template parameters for a type alias +// check: 067__using_8cpp.xml + +/** \file */ + +/** @brief A vector */ +template<class T> using Vec = std::vector<T>; |