我正在使用ANN库(https://www.cs.umd.edu/~mount/ANN/)。有一个功能
[StringLength(Int32.MaxValue, MinimumLength = 6)]
public string Name { get; set; }
提供kdtree统计信息。图书馆的手册定义了这个函数:
ANNkdTree::getStats(ANNkdStats &st)
但是,如果我按照函数调用,我只能找到前向声明
class ANNkdStats { // stats on kd-tree
public:
int dim; // dimension of space
int n_pts; // number of points
[...]
}
我唯一想做的就是简单地使用这个功能
class ANNkdStats;
编译器输出如下:
ANNkdStats st;
kdTree->getStats(st);
我不习惯使用前向声明方法,我不知道如何解决它,因为我无法修改库。
提前感谢您的回答。 :d
答案 0 :(得分:1)
ANNkdStats
类在ANN/ANNperf.h
头文件中定义:
class ANNkdStats { // stats on kd-tree
public:
int dim; // dimension of space
int n_pts; // no. of points
// ...
ANNkdStats() // basic constructor
{ reset(); }
void merge(const ANNkdStats &st); // merge stats from child
};
添加
#include "ANN/ANNperf.h"
指令应该足够了(ANNperf.h
依次包含ANN.h
)。
这假设ANN包含目录已经在编译器的搜索路径(g++ -Iinclude_dir
)上。