[英]Is it possible to declare constexpr class in a header and define it in a separate .cpp file?
[英]Doxygen: document a class in the cpp file with separate source and header directories while using macros to define namespaces
我正在尝试使用以下文件记录一个库:
include/mylib/mylib_global.h
include/mylib/SomeClass.h
source/SomeClass.cpp
Doxyfile
包括/mylib/mylib_global.h:
#pragma once
#define MYLIB_NAMESPACE_BEGIN namespace mylibns {
#define MYLIB_NAMESPACE_END }
包括/mylib/SomeClass.h:
#pragma once
#include "mylib_global.h"
MYLIB_NAMESPACE_BEGIN
class SomeClass
{
public:
SomeClass();
};
MYLIB_NAMESPACE_END
来源/SomeClass.cpp:
#include "mylib/SomeClass.h"
MYLIB_NAMESPACE_BEGIN
/*!
* \class SomeClass
* This is a sample class.
*/
/*!
* This is a constructor.
*/
SomeClass::SomeClass()
{
}
MYLIB_NAMESPACE_END
文件:
PROJECT_NAME = mylib
INPUT = .
RECURSIVE = YES
MACRO_EXPANSION = YES
Doxygen 产生以下警告:
Doxygen version used: 1.9.3 (c0b9eafbfb53286ce31e75e2b6c976ee4d345473)
[...]
include/mylib/SomeClass.h:7: warning: Compound mylibns::SomeClass is not documented.
*** Doxygen has finished
如果我执行以下任何操作,它将起作用:
include/
。 但我不想让它在那里。namespace mylibns {
而不是 cpp 中的宏。 但我希望命名空间是可配置的。MACRO_EXPANSION = NO
。 但这也会从文档中删除命名空间。\class mylibns::SomeClass
。 然而,这只能帮助解决这个特定问题(doxygen 也无法解决重载函数)。没有帮助的事情:
INPUT
参数指定较长路径的任意组合。EXTRACT_ALL = YES
CLANG_ASSISTED_PARSING = YES
我该如何正确地做到这一点?
在文件source/SomeClass.cpp
中你有:
#include "mylib/SomeClass.h"
但是文件SomeClass.h
位于include/mylib
中,所以你必须告诉 doxygen 在哪里可以找到包含文件。 这可以通过设置来完成:
INCLUDE_PATH = include
(类似于您可能使用-I include
之类的设置为编译器所做的事情)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.