这是一个常规文件,它主要定义了三个结构,分别为:
class FLANNException;
struct flann_datatype_value;
struct flann_datatype_type;
其中FLANNException继承与std名字空间中的runtime_error类,它提供了,程序运行错误,抛出异常时所显示的信息。
flann_datatype_value结构体,提供了int,char,…等数据类型到其枚举类型的转换,其枚举声明在头文件define.h中。比如:
flann::flann_datatype_value<char> a;
a::value == 1;
做如上声明,可得a的静态成员value值为FLANN_INT8,为1。
flann_datatype_size,提供了枚举数据类型到对应类型的转换。比如:
flann_datatype_type<FLANN_INT8> a;
a::type == char;
值a中的type类型与char是完全一样的。
除此之外该文件还提供了一个函数flann_datatype_size(flann_datatype_t type).
他的作用是根据相应的flann_datatype_t的值,返回它对应数据类型的大小,单位字节。比如:
flann_datatype_size(FLANN_INT8) == 1;
因为FLANN_INT8对应的类型为char,所以返回值为1.具体实现细节大家看源码就能很快的明白。