Skip to content
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

Missed space in the parameter declaration #656

Closed
Grace-Li-cam opened this issue Mar 11, 2021 · 5 comments
Closed

Missed space in the parameter declaration #656

Grace-Li-cam opened this issue Mar 11, 2021 · 5 comments
Assignees
Labels
bug Problem in existing code code Source code

Comments

@Grace-Li-cam
Copy link

Grace-Li-cam commented Mar 11, 2021

Hello!

Our C++ function looks something like this:

Object *CreateObject(std::vector<ObjectDataInterface *> object_data);

When I run the following command to generate PDF doc, the error occurred:

.. doxygenfunction:: CreateObject(std::vector<ObjectDataInterface *> object_data)

It can only work if I remove the space between ObjectDataInterface and *. That is:

.. doxygenfunction:: CreateObject(std::vector<ObjectDataInterface*> object_data)

Is it possible to support parsing the space so that I can just copy the original name of the function instead of removing all the spaces for the functions like this? Thanks.

@jakobandersen
Copy link
Collaborator

Do you have the error message for when the space is there? and preferably a minimum working example to reproduce the problem?

@Grace-Li-cam
Copy link
Author

Grace-Li-cam commented Mar 16, 2021

working sample:

/*!
 * @brief Creates an instance of Object with single input and it's pointed
 * by an Object pointer.
 *
 * @param[in] object_data Object data interface.
 *
 */
Object *CreateIObject (ObjectDataInterface *object_data);

/*!
 * @brief Creates an instance of Object with multiple input and it's pointed
 * by an Object pointer.
 *
 * @param[in] object_data Object data interface.
 *
 */
Object *CreateIObject(std::vector<ObjectDataInterface *> object_data);

RST file:


CreateIObject
-------------------

.. doxygenfunction:: CreateIObject (ObjectDataInterface *object_data)

.. doxygenfunction:: CreateIObject(std::vector<ObjectDataInterface *> object_data)

error message:

WARNING: doxygenfunction: Unable to resolve multiple matches for function "CreateIObject" with arguments (std::vector<ObjectDataInterface*> object_data) in doxygen xml output for project "MM" from directory: ../doxygen/xml.
Potential matches:
    - Object *CreateIObject(ObjectDataInterface *object_data)
    - Object*CreateIObject(std::vector<ObjectDataInterface*> object_data)

As you can see in the error message the space between ObjectDataInterface and * is removed.

jakobandersen added a commit to jakobandersen/breathe that referenced this issue Apr 18, 2021
@jakobandersen
Copy link
Collaborator

There was a problem with this kind of white space at some point, but it should no longer be present. I can't reproduce with the current master branch, which version are you using?
Though, I did find a different whitespace problem (see #679).

@Grace-Li-cam
Copy link
Author

I upgraded to the latest version of Breathe, the problem seems has been resolved. Thanks.

@vermeeren vermeeren added bug Problem in existing code code Source code labels Sep 18, 2021
@vermeeren
Copy link
Collaborator

Good to hear it's resolved, closing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Problem in existing code code Source code
Projects
None yet
Development

No branches or pull requests

3 participants