Hello @ all,

I think I found a bug in the Doxygen name resolving scheme together with class 
documentation and constructor documentation.

I want to copy the documentation of a base class to the inheriting class. The 
problem is that the default name resolution copies the documentation of the 
constructor (Case1) and not the class itself. If I try to specify the full name 
of the class, then in case 3 it still defaults to the constructor 
documentation. In case 2 it can not find the documentation (In my real world 
case that worked actually for me, but case 3 is still wrong in the real world 
case.)

Is this a bug or have I done something wrong.

Best regards

Max

#include <type_traits>

namespace test {

/** ABase Class */
template<typename T>
struct ABase {
  /** ABase Const */
  ABase() {}
};

/** BBase Class */
template<typename T>
struct BBase : public ABase<T> {
  /** BBase Const */
  BBase() {}
};

/* Case1: \copydoc ABase */
/** Case2: \copydoc ::test::ABase */
template<typename T, typename = void>
struct A : public ABase<T> {
  /** A Const */
  A() {}
};

/** Case3: \copydoc ::test::ABase */
template<typename T>
struct A<T, typename std::enable_if<std::is_same<T,double>::value>::type> : 
public BBase<T> {
  /** A Const */
  A() {}
};

}


--

Dr. Max Sagebaum

Chair for Scientific Computing,
TU Kaiserslautern,
Bldg/Geb 34, Paul-Ehrlich-Strasse,
67663 Kaiserslautern, Germany

Phone: +49 (0)631 205 5638
Fax:   +49 (0)631 205 3056
Email: [email protected]<mailto:[email protected]>
URL:   www.scicomp.uni-kl.de






#include <type_traits>

namespace test {

/** ABase Class */
template<typename T>
struct ABase {
  /** ABase Const */
  ABase() {}
};

/** BBase Class */
template<typename T>
struct BBase : public ABase<T> {
  /** BBase Const */
  BBase() {}
};

/* Case1: \copydoc ABase */
/** Case2: \copydoc ::test::ABase */
template<typename T, typename = void>
struct A : public ABase<T> {
  /** A Const */
  A() {}
};

/** \copydoc ::test::ABase */
template<typename T>
struct A<T, typename std::enable_if<std::is_same<T,double>::value>::type> : public BBase<T> {
  /** A Const */
  A() {}
};

}
_______________________________________________
Doxygen-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/doxygen-develop

Reply via email to