2017-07-19 93 views
1

的成员我试图访问在我使用的库(ogdf)的类中定义的枚举。C++枚举不是

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库的一部分,不存在任何问题与圆形包括,这似乎是最常见的问题造成的。

我看不出为什么发生这种情况,非常感谢任何帮助! 如果您需要更多详细信息,请告诉我,我会更新问题。

+0

'ogdf :: StressMinimization :: POSITION_DIFFERENCE'看起来没问题。你可以访问其他成员吗? –

+0

这是唯一的错误?可能是其他人的结果。 – Serge

回答

1

假设你是最新的,可能是因为enum的名称改变了,而且文档是旧的;看起来像文档是从2015年,最新的快照(目前)从2017年二月从https://github.com/ogdf/ogdf/blob/master/include/ogdf/energybased/StressMinimization.h,枚举看起来像现在这样:

enum class TerminationCriterion { 
    None, PositionDifference, Stress 
}; 

所以,尽量用PositionDifference更换TERMINATION_CRITERION与TerminationCriterion和/或POSITION_DIFFERENCE看看如果有效的话。

+0

我觉得很蠢。我应该自己研究它,永远不要相信文档。 – nurgan