sphinx-doc / sphinx

The Sphinx documentation generator
https://www.sphinx-doc.org/
Other
6.61k stars 2.13k forks source link

C++ Domain: Error when parsing enum in template class scope #13129

Open HeinischValentin opened 1 week ago

HeinischValentin commented 1 week ago

Describe the bug

I am trying to document an enum, that is part of a partially specialized template class. However, I am getting this issue:

index.rst:6: WARNING: Invalid C++ declaration: Expected identifier in nested name, got keyword: template [error at 8]
  template<> Some<int>::Enum
  --------^

This only occurs for enums. It works when I declare a class the same way.

How to Reproduce

.. This works:

.. cpp:class:: template<> Some<int>::Class

.. This doesn't:

.. cpp:enum:: template<> Some<int>::Enum

Environment Information

Platform:              linux; (Linux-5.15.167.4-microsoft-standard-WSL2-x86_64-with-glibc2.35)
Python version:        3.10.12 (main, Sep 11 2024, 15:47:36) [GCC 11.4.0])
Python implementation: CPython
Sphinx version:        8.1.3
Docutils version:      0.21.2
Jinja2 version:        3.1.4
Pygments version:      2.18.0

Sphinx extensions

No response

Additional context

No response