Boost Wave 提供了一个可重用的 C 预处理器。从文档中很容易获得它所做的事情的(广泛的)列表,它支持的标准,它包含的功能等。
它不做什么?它是否支持 GCC 和 Microsoft C++ 的所有非标准扩展?还是用于嵌入式系统的各种供应商编译器?它对内联汇编的各种语法或古怪遗留系统中已弃用的代码有何影响?有没有人尝试过,例如完整的 Linux 内核源代码或 Windows 标头集?
Boost Wave 提供了一个可重用的 C 预处理器。从文档中很容易获得它所做的事情的(广泛的)列表,它支持的标准,它包含的功能等。
它不做什么?它是否支持 GCC 和 Microsoft C++ 的所有非标准扩展?还是用于嵌入式系统的各种供应商编译器?它对内联汇编的各种语法或古怪遗留系统中已弃用的代码有何影响?有没有人尝试过,例如完整的 Linux 内核源代码或 Windows 标头集?
好的,我自己编译并运行了几个实验。到目前为止,它似乎不支持这个 GCC 扩展:
以及包含以下构造的 Microsoft 头文件 C:\Program Files (x86)\Microsoft Visual Studio 11.0\vc\include\xkeycheck.h 上的 barfs:
#if defined(auto) /* check C keywords */ \
|| defined(break) \
...
确定它是否支持您最喜欢的扩展的最简单方法就是,您知道,尝试一下。在这里提问并等待足够多的评论/答案积累以得出结论可能更快。或者查看文档,如果它根本不谈论 GCC/MSC 扩展,它可能只是不知道它们。