-
-
Notifications
You must be signed in to change notification settings - Fork 198
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Function arguments are getting shuffled around #309
Comments
Hello, anyone there?!? I "solved" this now by commenting out the But this is not in any way acceptable, I guess.. |
Could you check if this still occurs with latest Sphinx (1.7.5) + Breathe (4.9.0)? Perhaps this has already been fixed silently. |
So I tried to build the documentation again Using breathe 4.7.3 with Sphinx 1.6.7 I get the same error as above:
Using breathe 4.9.0 with Sphinx 1.6.7 the error stays the same:
Using breathe 4.9.0 with Sphinx 1.7.5 still the same error (along with many other errors):
In conclusion - it has not been fixed silently in Sphinx 😢
Thank you very much. |
As far as I'm aware, this problem originates in the Doxygen XML output. In m.css I'm manually patching the function argument list and reinserting the name to proper place -- though in my case it works only for array arguments (such as here), it's not robust enough to handle complex function pointers ... yet. |
Thanks for the details. For the next step in resolving this issue I would probably like to see some Doxygen XML. Based upon that maybe we can find or file an upstream issue. Otherwise we could implement some workaround for this in Breathe itself. |
Taken straight from my tests -- for the following input: template<class T> int foo(int a, std::string b, char(&things)[5], bool,
char(&)[42], int stuff[], double[1337]); this is the relevant XML snippet: ...
<memberdef kind="function" id="namespaceFoo_1a438de3b4c677344081baef1ec352f691" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>class T</type>
</param>
</templateparamlist>
<type>int</type>
<definition>int Foo::foo</definition>
<argsstring>(int a, std::string b, char(&things)[5], bool, char(&)[42], int stuff[], double[1337])</argsstring>
<name>foo</name>
<param>
<type>int</type>
<declname>a</declname>
</param>
<param>
<type>std::string</type>
<declname>b</declname>
</param>
<param>
<type>char(&)</type>
<declname>things</declname>
<array>[5]</array>
</param>
<param>
<type>bool</type>
</param>
<param>
<type>char(&)</type>
<array>[42]</array>
</param>
<param>
<type>int</type>
<declname>stuff</declname>
<array>[]</array>
</param>
<param>
<type>double</type>
<array>[1337]</array>
</param>
... You could maybe just use the raw |
Hey there. https://github.com/spookey/breathe-309 It does not do much, but produces the error above when building documentation... |
I think the problem is the conversion Breathe is doing at |
Should be fixed with #512, released in Breathe v4.17.0. Note that you also need Sphinx 3.x for recent Breathe versions. |
Hello,
currently I'm stuck, can you help me?
I have the following snippet of code:
If I run this through doxygen it gets parsed properly (I was looking into the xml files), but sphinx throws the following warning:
This is quite annoying, as
uint8_t (T::*member)(long)
is something completely different thanuint8_t(T::*)(long) member
...How can I prevent those warnings, and generate proper output? (the signature is also wrong in the rendered html)
Is breathe doing the shuffling here, or someone different?
I have set up some minimal example to showcase this issue, I'll will upload it here, if someone here asks for it.
Thanks.
The text was updated successfully, but these errors were encountered: