C ++枚举不是

时间:2017-07-19 01:43:38

标签: c++ enums

我正在尝试访问在我使用的库(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’

当然我通过以下方式将标题包含在我的.cpp文件中:

#include <ogdf/energybased/StressMinimization.h>

由于这是ogdf库的一部分,循环包含没有问题,这似乎是引起这种情况的最常见问题。

我不明白为什么会发生这种情况,非常感谢任何帮助! 如果您需要任何进一步的细节,请告诉我,我会更新问题。

1 个答案:

答案 0 :(得分:1)

假设您是最新的,可能是枚举的名称已更改且文档已旧;看起来这个文档来自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,看看是否有效。