Skip to content

Protected types inherited documentation does not extend template instantiation past first level of inheritance #10656

@scott-zhong

Description

@scott-zhong

Protected types inherited documentation does not extend template instantiation past first level of inheritance. The problem started with Doxygen 1.9.5 and continues with trunk 1.11.0 (4c99c07*).

/**
 * Guard docs
 */
template <class Resource>
class Guard
{
};

/**
 * Lock docs
 */
class Lock
{
};

/**
 * Base docs
 */
template <class T>
class Base
{
protected:
    /**
     * guard typedef
     */
    typedef Guard< Base< T > > LockGuard;
};

/**
 * Derived docs
 */
template <class T>
class Derived : public Base<T>
{
protected:
    /**
     * guard typedef
     */
    typedef Guard< Base<T> > LockGuard;
};

/**
 * NextGen docs
 */
class NextGen
    : protected Derived<Lock>
{
};

Doxygen 1.9.4:

image

Doxygen 1.9.5 and trunk (4c99c07*):

image

Testcase:

testcase.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions