diff options
author | Jakob Lykke Andersen <Jakob@caput.dk> | 2020-08-02 10:34:51 +0200 |
---|---|---|
committer | Jakob Lykke Andersen <Jakob@caput.dk> | 2020-08-02 10:34:51 +0200 |
commit | a99039b13b88085c30db9fe4bc85256ca5718096 (patch) | |
tree | 37af41ffe8fca8eae2dbac0c378b4fc848d2b090 /tests/test_domain_cpp.py | |
parent | 4f56fad7b7f5c71ffa734fd6a7a53b399a728f41 (diff) | |
download | sphinx-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.py | 11 |
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 |