Boost C++ 库

...是世界上最受尊敬、设计最精良的 C++ 库项目之一。 Herb SutterAndrei AlexandrescuC++ Coding Standards

C++20 模块 - Boost C++ 函数库
PrevUpHomeNext
[Caution] 注意

C++20 module 支持尚处于早期阶段,目标、标志和行为可能会在未来发生变化。

如果使用现代 CMake,请定义 CMake 选项 -DBOOST_USE_MODULES=1 来构建 C++20 module,并使 Boost::any CMake target 提供它。之后就可以显式使用 C++20 module boost.any 了。

import boost.any;

int main() {
    boost::any a = 42;
}

Boost::any CMake target 能够在一个翻译单元中混合包含(include)和导入(import)该库。此外,如果定义了 BOOST_USE_MODULES 宏,那么所有 boost/any... 的 include 会隐式执行 import boost.any;,从而在不改变现有代码的情况下获得 module 的所有优势。

[Note] 注意

为了更快的编译时间,请确保在构建 boost.any module 时可以使用 import std; (在 CMake 日志中应该会显示“Using import std;”的消息)。

如果不使用 CMake,则可以从 modules/boost_any.cppm 文件手动构建该 module。

对于手动 module 构建,可以使用以下命令来编译 clang 编译器:

cd any/modules
clang++ -I ../include -std=c++20 --precompile -x c++-module boost_any.cppm

之后,可以按如下方式使用该模块。

clang++ -std=c++20 -fmodule-file=boost_any.pcm boost_any.pcm usage_sample.cpp

PrevUpHomeNext