boost gemotry
定义用于解决几何问题的概念、原语和算法。
1.编译
Boost 1.73中的几何体不支持C++03,从Boost 1.75开始需要C++14
为了能够使用Boost。用户只需下载和/或安装Boost,并指定包含目录的位置,因此此方案的include指令将起作用:
#include <boost/...>
1.1支持的编译器
1.2引用
包含所有算法和策略的最方便的头文件是geometry.hpp:
#include <boost/geometry.hpp>
这是Boost.Geometry主要的头文件,而且通常建议包含此文件。
或者,也可以分开的包含Boost.Geometry头文件。但,这可能会很不方便,因为头文件将来可能会被重命名或者移动。
另一个常用的头文件是geometries.hpp
#include <boost/geometry/geometries/geometries.hpp>
这个头文件包含所有提供几何体类型的定义。
- point
- linestring
- polygon
- ring
- multi_point
- multi_linestring
- multi_polygon
- box
- segment
geometries.hpp并没有包含在geometry.hpp头文件中,因为用户有权使用自己的几何图形而不是提供的几何图形。然而,对于想使用Boost.Geometry库提供的几何图形,包含geometries.hpp是非常有用的。
1.3高级引用
用户有自己的几何图形并希望使用Boost.Geometry算法的用户,可以引用包含注册宏的文件:
#include <boost/geometry/geometries/register/point.hpp>
1.4性能
下面的枚举并不详尽,但可以包含提高性能的提示:
-
对于Microsoft MSVC,为预处理器设置define _SECURE_SCL=0。
-
对于Microsoft MSVC,为预处理器设置define _HAS_ITERATOR_debugation=0。
-
使用STLPUT,一个流行的STL开源实现,可能会比使用MSVC提供的C++标准库获得更快地代码。
-
启用编译器优化,在release模式下编译。
STLPUT??
如何启用编译器优化?