Неожиданные результаты с опцией doxygen «TEMPLATE_RELATIONS»: не влияет на страницу дерева иерархии классов с использованием C # - PullRequest
0 голосов
/ 26 сентября 2019

(с использованием Doxygen V 1.8.16). Описание этой опции: «Если для тега TEMPLATE_RELATIONS установлено значение YES, то графики наследования и совместной работы будут отображать отношения между шаблонами и их экземплярами».

НоЯ не могу заставить это работать на странице иерархии классов.Он последовательно отображает конкретные варианты типов универсального класса вне какой-либо древовидной структуры на том же «уровне», что и само определение универсального типа.

enter image description here

Я пытаюсь сделать так, чтобы варианты, которые реализуют определенный тип для универсального класса, казались «производными» или, скорее, «основанными» на универсальном классе.На самом деле, кажется, что он прекрасно работает, когда я перехожу на страницу класса для GenericClass, где выглядит идеально:

enter image description here

Основной вопрос: Как я могу заставить графические (и в идеале текстовые) страницы иерархии классов отображать отношения, подобные версии, показанной на странице класса?

Вот код, использованный для простого примера, с которым я это тестировал:

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

Но это приводит к ОБА версии (моей ина странице иерархии, что, возможно, еще более запутанно: enter image description here

...