我正在尝试访问在我使用的库 (ogdf) 类中定义的枚举。
See line 65 here用于库中枚举的定义。
如果我尝试那样访问它(我认为这是正确的方法):
ogdf::StressMinimization::TERMINATION_CRITERION::POSITION_DIFFERENCE
我收到以下错误:
error: ‘ogdf::StressMinimization::TERMINATION_CRITERION’ has not been declared
如果我尝试这样做:
ogdf::StressMinimization::POSITION_DIFFERENCE
我收到这个错误:
error: ‘POSITION_DIFFERENCE’ is not a member of ‘ogdf::StressMinimization’
当然,我通过以下方式将 header 包含在我的 .cpp 文件中:
#include <ogdf/energybased/StressMinimization.h>
因为这是 ogdf 库的一部分,循环包含没有问题,这似乎是导致该问题的最常见问题。
我不明白为什么会这样,非常感谢任何帮助! 如果您需要更多详细信息,请告诉我,我会更新问题。
最佳答案
假设您使用的是最新版本,可能是枚举的名称已更改并且文档已旧;看起来该文档来自 2015 年,最新快照(当前)来自 2017 年 2 月。来自 https://github.com/ogdf/ogdf/blob/master/include/ogdf/energybased/StressMinimization.h ,枚举现在看起来像这样:
enum class TerminationCriterion {
None, PositionDifference, Stress
};
因此,尝试将 TERMINATION_CRITERION
替换为 TerminationCriterion 和/或将 POSITION_DIFFERENCE
替换为 PositionDifference
,看看是否可行。
关于C++ 枚举不是的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45179668/