如何解读fast-lio2中的 `IKFoM` 中的宏定义 - 掘金现象 :
1) build_manifold.hpp 中存在大量的宏定义
2) 它们大量使用到了Boost库的预处理(PP: preprocessor)模板元库的宏定义, 例如 BOOST_PP_SEQ_ENUM 宏用来将一个序列转换成数组, BOOST_PP_SEQ_TRANSFORM_S 宏则用来产生一个序列.
3) 这些宏层层嵌套引用, 最终组成了若干个更大的宏定义, 例如: MTK_BUILD_MANIFOLD
4) 这给阅读 fast-lio2 的代码和理解其数据结构和方法, 带来了比较大的困扰.
本文将一步一步教你如何解读 fast-lio2 中的这些宏定义, 使之回归普通的 C++ 代码.
KeyMessage 1: 本文讲解如何解析 fast-lio2 中的 IKFOM 的宏定义.
KeyMessage 2: 本文中一开始有较多宏解析过程的介绍, 若想直接看解析后的结果, 可以根据右边侧边栏上的 目录导引直接跳转到对应的章节, 如"Step1..." 、"Step2..."、"Step3..." 看最后解析完毕的C++代码.
Keymessage 3: 编写宏时, 会涉及大量boost的宏模板编程技术, 如BOOST_PP_SEQ_xxx 等; 但是在解读宏代码时, 则不需要了解太多 boost 的技术。 本文无需涉及 boost 库即可解读宏代码.
详细过程见如下 链接: ( 习惯了了其站点 markdown 的编写方式和样式, 一时还没有切换过来, 见谅: )