jason-fox/fox.jason.passthrough.doxygen

Does not work with templated base class

Closed this issue · 0 comments

hcw70 commented

Hi @jason-fox. Just decided to give this plugin a try on our sources, and came across
some problems.

When running on a class which inherits from a templated base class, i get the error:

[topic-reader] file:/home/hcw/work/Deuta/generic-gateway/tst_doxy2dita/out/xml/all.xml:12:1150: [DOTJ054E][ERROR] Unable to parse invalid href attribute value "#Types::RingBuffer< int >", using '#Types::RingBuffer%3C%20int%20%3E'.
[topic-reader] file:/home/hcw/work/Deuta/generic-gateway/tst_doxy2dita/out/xml/all.xml:12:1351: [DOTJ054E][ERROR] Unable to parse invalid href attribute value "#Types::RingBuffer< ElementType >", using '#Types::RingBuffer%3C%20ElementType%20%3E'.

The input sample i used for testing is:


/**
 * Implementation of the class RingBuffer
 *
 * @file
 *
 */

#ifndef RINGBUFFER_H
#define RINGBUFFER_H

/* System includes */
#include <QMutex>
#include <QMutexLocker>
#include <stdexcept>

namespace Types
{
    /**
     * A customizable ring buffer
     */
    template <class ElementType>
    class RingBufferBase
    {
    public:
        RingBufferBase(unsigned int numberOfElements)
        {
        }
        virtual ~RingBufferBase()
        {
        }
        virtual ElementType get() = 0;
    };

    template <class ElementType>
    class RingBuffer : public RingBufferBase<ElementType>
    {
    public:
        using base = RingBufferBase<ElementType>;

        explicit RingBuffer(unsigned int numberOfElements)
            : RingBufferBase<ElementType>(numberOfElements)
        {
        }

        ElementType get() override
        {
        }
    };

    class MyBuffer : public RingBuffer<int> {
    };
} // namespace Types
#endif // RINGBUFFER_H