Boost C++ 库

...世界上最受尊敬和设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码标准

PrevUpHomeNext

Visual C++ 定义

微软的 Visual C++ 编译器,简称 VC++,是一个非常流行的编译器,但在其默认预处理器中,在很多方面没有正确地实现标准 C++ 预处理器。 因此,使用 VMD 的程序员在使用 VC++ 时偶尔需要做一些不同的事情。 VMD 库已经尽可能地消除了 VC++ 的这些“怪癖”,但在后续主题中会提及,并且使用 VMD 的程序员有时必须解决这些问题。

VMD 有一个宏,用于指示何时正在使用 VC++ 默认预处理器。 该宏是一个类似对象的宏,名为 BOOST_VMD_MSVC。 当使用 VC++ 的默认预处理器时,它被设置为 1,而当不使用 VC++ 的默认预处理器时,它被设置为 0。 只要包含 VMD 头文件,您就可以在自己的宏代码中使用此宏来编写代码,该代码可能需要针对 VC++ 进行特殊处理,如本文档中所述。 因此,您的宏处理可能偶尔采取以下形式:

#include <boost/vmd/some_header.hpp>

#if BOOST_VMD_MSVC

#define SOME_MACRO ... code for VC++ using its default preprocessor

#else

#define SOME_MACRO ... code for all other compilers

#endif

BOOST_VMD_MSVC 宏仅在VC++默认预处理器被使用时才适用。 当 VC++ 的新的标准兼容预处理器,目前通过 /Zc:preprocessor 命令行选项激活时,它不适用。


PrevUpHomeNext