Boost C++ 库

...世界上最受推崇和专业设计的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

编译

[Caution] 注意

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>

性能

下面的枚举并非详尽无遗,但可以包含提高性能的提示

Intellisense 问题

MSVC 的 2005 和 2008 版本(包括 Express 版本)在尝试解析符号并在括号或尖括号中键入时,都可能挂起并给出 IntelliSense 建议。这与 Boost.Geometry 没有直接关系,而是由于此 IDE 处理大量使用密集型模板的 C++ 代码库(例如 Boost 和 Boost.Geometry)时出现问题而引起的。如果这不方便,可以关闭 IntelliSense

(...)在 VC++ 中禁用 IntelliSense。在 <VS8INSTALL>/VC/vcpackages 文件夹中有一个名为 feacp.dll 的文件。重命名此文件将禁用 Intellisense 功能。

-- Visual C++ 2005 中的 Intellisense 问题


PrevUpHomeNext