我有一个C++模板类base::Foo<class T>,我在另一个文件中有一个类base::bar::Foo : public base::Foo<Baz>.Doxygen似乎不喜欢这样,因为它会抛出一个错误
<unknown>:1: Detected potential recursive class relation between class snLib::mocTwod::DsaCell and base class DsaCell< snLib::mocTwod::ProblemTraits, detLib::cellDiffusionTwod::ProblemTraits >!
Run Code Online (Sandbox Code Playgroud)
有没有办法防止这种情况发生?Doxygen的文档没有讨论这个错误或关于"潜在的递归类关系"的任何内容.
"基础"类:
/*! \file snlib/DsaCell.hpp
*/
#ifndef snlib_DsaCell_hpp
#define snlib_DsaCell_hpp
#include "Dsa.hpp"
namespace snLib {
/*!
* \brief Implementation of naive cell-centered DSA
*/
template <class HoTraits_T, class LoTraits_T>
class DsaCell : public snLib::Dsa< HoTraits_T, LoTraits_T >
{
[snip]
};
}
#endif
Run Code Online (Sandbox Code Playgroud)
导致问题的一个后代:
/*! \file snlib/twod/moc/DsaCell.hpp
*/
#ifndef snlib_twod_moc_DsaCell_hpp
#define snlib_twod_moc_DsaCell_hpp
#include "snlib/DsaCell.hpp"
#include "ProblemTraits.hpp"
#include "detlib/twod/celldiffusion/ProblemTraits.hpp"
namespace snLib { namespace mocTwod {
/*!
* \brief Inconsistent DSA for MOC
*/
class DsaCell : public snLib::DsaCell<
snLib::mocTwod::ProblemTraits,
detLib::cellDiffusionTwod::ProblemTraits
>
{
[snip]
};
} } // end namespace snLib::mocTwod
#endif
Run Code Online (Sandbox Code Playgroud)
我的Doxygen配置文件有许多选项集,包括路径配置:( STRIP_FROM_PATH设置为根目录),STRIP_FROM_INC_PATH(相同),INCLUDE_PATH(相同).
编辑:看起来错误实际上是在另一个使用由具有冲突名称的XML标记生成的XML标记的Doxyfile中抛出,因此问题与此有关.无论如何,我只是将基类改名为其他东西,一切都很好.
| 归档时间: |
|
| 查看次数: |
1207 次 |
| 最近记录: |