実際には存在しないが、マクロを介して定義されているクラスがあります。
#define DEFCLASS(name,datatype) Class name { \
public: \
void clear(); \
datatype obj; \
};
DEFMETHOD(StringContainer, const char*)
..。
StringContainer foo("hi!");
もちろん、テンプレートを使用して実装する必要がありましたが、私はそれを作成しませんでした。変更することはできず、大規模なコードベースはそれに依存しています。
ここで問題は、StringContainerをdoxygenで文書化したいと思います。ただし、実際に存在するクラスではないため、次のようにします。
/*!
\class StringContainer
\brief A string container
\fn void StringContainer::clear()
\brief Clears the container
*/
doxygenの警告が表示されます:
warning: documented function `StringContainer::clear' was not declared or defined.
また、ドキュメントにはその機能は含まれていません。少し注意が必要ですが、ソースコードで定義されていなくても、doxygenに「信頼」を持たせ、StringContainerのドキュメントを作成する方法はありますか?
解決
偽の.hファイルを作成して、ビルドシステムにクラスが含まれないようにしながら、doxygenにクラスが存在することを認識させることができます。これらのファイルには、.dox拡張子を付けることができます。このようにして、クラス定義とドキュメントを含む.doxファイルを作成します。
class StringContainer {
public:
/*! Removes the contents of the container. */
void clear();
const char *obj;
};
このファイルは実際にはビルドシステムに含まれず、その唯一の目的はStringContainerを文書化することです。