Hi -- thanks for the feedback!
I was using the stock Fedora version, 2.1.2
Anyway, I installed from github: `sphinx-apidoc --version` now ==
"sphinx-apidoc
3.1.0+/92222e9"
I recreated a fresh directory w/ `sphinx-quickstart`, and the minimal
example which recreates the error looks like this:
.. cpp:function:: template<typename T, typename =
std::enable_if_t<std::is_integral_v<T>, T>> \
T getIntegralArg (const std::string& str, const char ch = '\0', \
const std::string& errmsg = "Invalid argument", T unset = 0)
:noindex:
If an option identified by ``str`` or ``ch`` is set, will try to convert
that argument into
a ``T``. If it is not set, returns ``unset``. If the argument cannot be
converted to a ``T``,
**throws** ``mishap`` using ``errmsg`` with a colon and the argument value
appended.
I had to add the add the test paragraph. Notice it's indented...
So, problem solved (no need for indenting there, dunno why I was doing
that). This is why finding some examples using the cpp domain would be
nice -- although I realize this error is just pure rST neophytism (and not
posting the complete code initially).
On Sunday, 19 April 2020 01:25:30 UTC-4, Komiya Takeshi wrote:
>
> Hi,
>
> On my local, it works fine without error. I copied your "cpp:function"
> definition to my index.rst and build it to HTML with Sphinx-3.0.1. And
> the function is not filed into index. Please check your version of
> Sphinx and try it again with minimal example.
>
> Thanks,
> Takeshi KOMIYA
>
> 2020年4月19日(日) 6:59 MK Latter <[email protected] <javascript:>>:
> >
> > I've just started to use sphinx with a C++ and I like it well enough,
> but I am getting a bit nervous that things are going to start falling apart
> because it doesn't seem to be able to handle gnarlier signatures.
> >
> > I'm aware of doxygen + exhale + sphinx but that is not really a route I
> want to go down.
> >
> > As an example, this is a perfectly valid, compilable function signature:
> >
> > template<
> > typename T,
> > typename = std::enable_if_t<std::is_integral_v<T>, T>
> > >
> > T getIntegralArg (
> > const std::string& str,
> > const char ch = '\0',
> > const std::string& errmsg = "Invalid argument",
> > T unset = (T)0
> > )
> >
> > I've put that like this in the documentation (the break/ident pattern
> works fine w/ other stuff, and putting the sig all on one line doesn't make
> any difference):
> >
> > .. cpp:function:: template<typename T, typename =
> std::enable_if_t<std::is_integral_v<T>, T>> \
> > T getIntegralArg (const std::string& str, const char ch = '\0',
> \
> > const std::string& errmsg = "Invalid argument", T unset = (T)0)
> > :noindex:
> >
> >
> > The problem (or a symptom thereof) is that `:noindex` is interpreted
> literally and gets printed after the signature. This also means I cannot
> use `:tparam-line-spec:`, which would be handy here. The actual error is:
> >
> >> If the function has no return type:
> >> Error in declarator or parameters and qualifiers
> >> Invalid definition: Expected identifier in nested name. [error at 0]
> >> :noindex:
> >> ^
> >
> >
> > Although the end product is not too zany (the actual function name is
> emphasized, as are the params), I'm worried more symptoms of this will keep
> popping up, and not being able to use `:noindex` there is a real problem.
> I'd feel a little less like I'm being led down a garden path into the dark
> woods if I knew the C++ domain had been used for something beyond the
> trivial. I've searched around a bit online and glanced over the list of
> projects pages but nothing jumps out at me.
> >
> > Is anyone aware of a non-trivial, open source C++ project (as in, actual
> software project, not a book about C++, etc.) that uses Sphinx and
> reStructuredText alone (ie., not chained to Doxygen and Exhale)? It
> doesn't have to be open source as long as the documentation sources are
> available.
> >
> > While I'm here if anyone has any ideas about getting around the problem,
> that would be great. Ideally it would be nice if there were the option to
> manually break this down and indicate with markup the params, default
> values, etc. Have I missed something there?
> >
> >
> >
> > --
> > You received this message because you are subscribed to the Google
> Groups "sphinx-users" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected] <javascript:>.
> > To view this discussion on the web visit
> https://groups.google.com/d/msgid/sphinx-users/c08a20f4-a3f6-4f28-8e71-59a08698926f%40googlegroups.com.
>
>
>
--
You received this message because you are subscribed to the Google Groups
"sphinx-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sphinx-users/17d09d7a-a020-4f27-b181-1af963ddeb85%40googlegroups.com.