Skip to content

Overloaded functions are mixed when their arguments have template with object in other namespace #11111

@st-masa

Description

@st-masa

Describe the bug

Assuming these structs are defined in namespace aa.

namespace aa {

/**
 * @brief Struct1
 */
struct Struct1
{
    int struct1_0;
    int struct1_1;
};

/**
 * @brief Struct2
 */
struct Struct2
{
    int struct2_0;
    int struct2_1;
};

}

And aliases of them are defined like this in namespace bb.

namespace bb {

/**
 * @brief alias of Structt1 in bb
 */
using Struct1 = aa::Struct1;
 
/**
 * @brief alias of Structt2 in bb
 */
using Struct2 = aa::Struct2;

}

The documentation of these overloaded function are mixed into one.

/**
    * @brief   FunctionExample (overload 1)
    *
    * @param[out] arg1 Struct1Type argument
    * @param[in] arg2 int argument
    *
    * @return return value
  */
int FunctionExample(Struct1Type arg1, int arg2);

/**
    * @brief   FunctionExample (overload 2)
    *
    * @param[out] arg1 Struct2Type argument
    * @param[in] arg2 int argument
    *
    * @return return value
  */
int FunctionExample(Struct2Type arg1, int arg2);

Screenshots

MixedFunction

To Reproduce
Extract unifiedOverloads.zip and run doxygen.

$ ce ./unifiedOverloads
$ doxyen ./DoxyFile

Expected behavior

Two overloaded functions are documented separately.

Version
Confirmed with v1.12.0. But can be reproduced with earlier versions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions