nen777w
nen777w

Reputation: 99

Doxygen generates a strange error for base class function about nonexisting function in the derived class

Here is the code:

namespace Test {
/// Base class
class Base
{
public:
    /// Method foo
    /// @param a ParamA
    /// @param b ParamB
    virtual void foo(char a, int b);

    /// Method foo
    /// @param a ParamA
    /// @param b ParamB
    /// @param c ParamC
    virtual void foo(char a, int b, char c);

    /// Method foo
    /// @param m ParamM
    template<typename T>
    void foo(std::vector<T> m)
    {

    }

};

/// Derived class
class Derived : public Base
{
public:
    using Base::foo;

    /// Method foo
    /// @param a ParamA
    /// @param b ParamB
    void foo(char a, int b) override;
}; 
}

If this code will be processed with Doxygen. We get the strange error:

Error: argument 'm' of command @param is not found in the argument list of Test::Derived::foo(typename T) (warning treated as error, aborting now)

If commenting line using Base::foo; the Doxygen correctly processing this file.

Looks like a bug in Doxygen, but is anybody know a workaround for that?

Upvotes: 0

Views: 116

Answers (1)

albert
albert

Reputation: 9057

  • With the doxygen versions till doxygen 1.9.1 (inclusive) I was able to reproduce the problem.
  • The problem is gone with the versions 1.9.2 and higher.

The current doxygen version is 1.9.4 (5d15657a55555e6181a7830a5c723af75e7577e2)

The solution for this problem is to update your doxygen version to the current doxygen version.

Upvotes: 2

Related Questions