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:

Doxygen 1.9.5 and trunk (4c99c07*):

Testcase:
testcase.zip