![]() |
注意 |
---|---|
Boost 1.73 版本中的 Boost.Geometry 已弃用对 C++03 的支持,并且从 Boost 1.75 版本开始将需要 C++14 |
Boost.Geometry 是一个仅包含头文件的库。用户只需在其程序中包含库头文件,即可访问 Boost.Geometry 库提供的定义和算法。无需链接任何二进制文件。
Boost.Geometry 仅依赖于仅包含头文件的 Boost 库。它不会引入对任何二进制库的间接依赖。
为了能够使用 Boost.Geometry,用户唯一需要做的就是下载和/或安装 Boost,并指定包含目录的位置,以便此方案的 include
指令可以工作
#include <boost/...>
Boost.Geometry 库源代码应能使用任何完全支持 C++14 的编译器成功编译。
有关当前已测试编译器的实际列表,请查看链接自 README.md 的库 CI 构建结果,或检查库存储库 develop 分支 中的 CI 服务配置文件。
Boost.Geometry 使用 Boost.Build,一个基于文本的系统,用于开发和测试软件,以配置、构建和执行单元测试和示例程序。构建配置以 Jamfile
文件集合的形式提供。
对于 gcc,可以使用标志 -Wno-long-long
来抑制来自 Boost 的一些警告。
包含所有算法和策略的最方便的头文件是 geometry.hpp
#include <boost/geometry.hpp>
这是 Boost.Geometry 库的主头文件,建议包含此文件。
或者,也可以单独包含 Boost.Geometry 头文件。但是,这可能不方便,因为头文件将来可能会偶尔被重命名或移动。
另一个常用的头文件是 geometries.hpp
#include <boost/geometry/geometries/geometries.hpp>
这包括所有提供的几何类型定义
文件 geometries.hpp
未包含在 geometry.hpp
头文件中,因为应该允许用户自由使用他们自己的几何图形,而不是提供的几何图形。但是,对于想要使用提供的几何图形的 Boost.Geometry 用户来说,包含此文件很有用。
拥有自己的几何图形并希望使用 Boost.Geometry 算法的用户可以包含包含注册宏的文件,例如
#include <boost/geometry/geometries/register/point.hpp>
下面的枚举并非详尽无遗,但可以包含提高性能的提示
_SECURE_SCL=0
。_HAS_ITERATOR_DEBUGGING=0
。MSVC 的 2005 和 2008 版本(包括 Express 版本)在尝试解析符号并在括号或尖括号中键入时,都可能挂起并给出 IntelliSense 建议。这与 Boost.Geometry 没有直接关系,而是由于此 IDE 处理大量使用密集型模板的 C++ 代码库(例如 Boost 和 Boost.Geometry)时出现问题而引起的。如果这不方便,可以关闭 IntelliSense
“(...)在 VC++ 中禁用 IntelliSense。在
<VS8INSTALL>/VC/vcpackages
文件夹中有一个名为feacp.dll
的文件。重命名此文件将禁用 Intellisense 功能。”