通常在大型库中,我看到类似于以下代码:
#define MY_CONSTEXPR constexpr
#define MY_NOEXCEPT noexcept
#define MY_NODISCARD [[nodiscard]]
etc.
为这些关键字创建别名的目的/好处是什么?我相当普遍地看到这种情况,但是却找不到任何有关这种做法的信息。如果我不得不猜测,原因是您可以有条件地编译是否要在编译中出现这些关键字。
为这些关键字创建别名的目的/好处是什么?我相当普遍地看到这种情况,但是却找不到任何有关这种做法的信息。如果我不得不猜测,原因是您可以有条件地编译是否要在编译中出现这些关键字。
是的,通常是这样。您可能还会看到类似的定义,其中包含空的替换文字,例如
#define MY_CONST
,涵盖了您不希望使用关键字的情况。
更大的情况是,这有助于与该语言的各种版本和各种编译器兼容。可以在构建库时编写此类定义(通常适合于用于构建它的工具链),也可以将它们包装在条件编译指令中,这些指令试图在客户端程序创建时决定如何定义宏。编译。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句