summaryrefslogtreecommitdiff
path: root/tests/test_domain_cpp.py
diff options
context:
space:
mode:
authorJakob Lykke Andersen <Jakob@caput.dk>2020-08-02 10:34:51 +0200
committerJakob Lykke Andersen <Jakob@caput.dk>2020-08-02 10:34:51 +0200
commita99039b13b88085c30db9fe4bc85256ca5718096 (patch)
tree37af41ffe8fca8eae2dbac0c378b4fc848d2b090 /tests/test_domain_cpp.py
parent4f56fad7b7f5c71ffa734fd6a7a53b399a728f41 (diff)
downloadsphinx-git-a99039b13b88085c30db9fe4bc85256ca5718096.tar.gz
C++, fix non-type template parameter parsing
Fixes sphinx-doc/sphinx#7944
Diffstat (limited to 'tests/test_domain_cpp.py')
-rw-r--r--tests/test_domain_cpp.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/test_domain_cpp.py b/tests/test_domain_cpp.py
index 28e437219..118227cd7 100644
--- a/tests/test_domain_cpp.py
+++ b/tests/test_domain_cpp.py
@@ -760,6 +760,7 @@ def test_templates():
check('class', "template<typename T = Test> {key}A", {2: "I0E1A"})
check('class', "template<template<typename> typename T> {key}A", {2: "II0E0E1A"})
+ check('class', "template<template<typename> class T> {key}A", {2: "II0E0E1A"})
check('class', "template<template<typename> typename> {key}A", {2: "II0E0E1A"})
check('class', "template<template<typename> typename ...T> {key}A", {2: "II0EDpE1A"})
check('class', "template<template<typename> typename...> {key}A", {2: "II0EDpE1A"})
@@ -770,6 +771,16 @@ def test_templates():
check('class', "template<int T = 42> {key}A", {2: "I_iE1A"})
check('class', "template<int = 42> {key}A", {2: "I_iE1A"})
+ check('class', "template<typename A<B>::C> {key}A", {2: "I_N1AI1BE1CEE1A"})
+ check('class', "template<typename A<B>::C = 42> {key}A", {2: "I_N1AI1BE1CEE1A"})
+ # from #7944
+ check('function', "template<typename T, "
+ "typename std::enable_if<!has_overloaded_addressof<T>::value, bool>::type = false"
+ "> constexpr T *static_addressof(T &ref)",
+ {2: "I0_NSt9enable_ifIX!has_overloaded_addressof<T>::valueEbE4typeEE16static_addressofR1T",
+ 3: "I0_NSt9enable_ifIXntN24has_overloaded_addressofI1TE5valueEEbE4typeEE16static_addressofR1T",
+ 4: "I0_NSt9enable_ifIXntN24has_overloaded_addressofI1TE5valueEEbE4typeEE16static_addressofP1TR1T"})
+
check('class', "template<> {key}A<NS::B<>>", {2: "IE1AIN2NS1BIEEE"})
# from #2058