(с использованием Doxygen V 1.8.16). Описание этой опции: «Если для тега TEMPLATE_RELATIONS установлено значение YES, то графики наследования и совместной работы будут отображать отношения между шаблонами и их экземплярами».
НоЯ не могу заставить это работать на странице иерархии классов.Он последовательно отображает конкретные варианты типов универсального класса вне какой-либо древовидной структуры на том же «уровне», что и само определение универсального типа.
Я пытаюсь сделать так, чтобы варианты, которые реализуют определенный тип для универсального класса, казались «производными» или, скорее, «основанными» на универсальном классе.На самом деле, кажется, что он прекрасно работает, когда я перехожу на страницу класса для GenericClass, где выглядит идеально:
Основной вопрос: Как я могу заставить графические (и в идеале текстовые) страницы иерархии классов отображать отношения, подобные версии, показанной на странице класса?
Вот код, использованный для простого примера, с которым я это тестировал:
namespace ClassLibrary1
{
/// <summary>
/// A Generic Class.. variants usually defined inline as a member of another class
/// </summary>
/// <typeparam name="T">type passed to the generic class upon declaration</typeparam>
public class GenericClass<T>
{
/// <summary>
/// the member of type T held by the generic class
/// </summary>
public T member;
/// <summary>
/// nothing special
/// </summary>
public int aNonGenericMember;
}
/// <summary>
/// Holds a couple of variants of GenericClass
/// </summary>
public class HolderOfGenericClassVariants
{
/// <summary>
/// string variant of GenericClass
/// </summary>
public GenericClass<string> stringVariant;
/// <summary>
/// float Variant of GenericClass
/// </summary>
public GenericClass<float> floatVariant;
}
/// <summary>
/// Holds a couple of variants of GenericClass, derived to ensure heirarchy shows in docs
/// </summary>
public class DerivedHolder : HolderOfGenericClassVariants
{
/// <summary>
/// int Variant of GenericClass
/// </summary>
public GenericClass<int> intVariant;
}
}
Я должен упомянуть: я также попытался добавить в файл кода следующее, специально для использования doxygen:
//! \class GenericClass<string>
//! \extends GenericClass\<T>
//! \brief Concrete variant of Generic class
Но это приводит к ОБА версии (моей ина странице иерархии, что, возможно, еще более запутанно: