ros-controls / ros-controls/control_toolbox

How to document overloaded functions?

Open
#349 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

persistent
Dominant language
C++
Stars
176
Forks
124
Avg merge
3h 44m
Merged PRs (30d)
9

Description

Should we try using https://www.doxygen.nl/manual/commands.html#cmdoverload instead of copy pasting all the parameter descriptions of the overloaded methods? (see the PID class)

but how?

This works in doxygen

  /*!
   * \brief Get PID gains for the controller.
   * \param p The proportional gain.
   * \param i The integral gain.
   * \param d The derivative gain.
   * \param i_max Upper integral clamp.
   * \param i_min Lower integral clamp.
   * \param antiwindup Antiwindup functionality. When set to true, limits
        the integral error to prevent windup; otherwise, constrains the
        integral contribution to the control output. i_max and
        i_min are applied in both scenarios.
   */
  void get_gains(
    double & p, double & i, double & d, double & i_max, double & i_min, bool & antiwindup);

  /*!
    * \brief Get PID gains for the controller.
    * \overload
    */
  void get_gains(double & p, double & i, double & d, double & i_max, double & i_min);

Image
but is not parsed nicely from vscode.

https://devblogs.microsoft.com/cppblog/improved-doxygen-overload-resolution/ it seems that this feature also does not exist yet in the released version.

Any chance to satisfy both worlds?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting the PID class documentation and its overloaded get_gains declarations. Compare the current Doxygen output with how the declarations are parsed in VS Code, then review the linked Doxygen overload documentation and released-version limitations. Done means a documented approach is identified that preserves readable generated documentation and acceptable editor parsing, or the incompatibility is clearly recorded.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.