库为什么要为c ++关键字创建宏别名?

匿名

通常在大型库中,我看到类似于以下代码:

#define MY_CONSTEXPR constexpr
#define MY_NOEXCEPT noexcept
#define MY_NODISCARD [[nodiscard]]
etc.

为这些关键字创建别名的目的/好处是什么?我相当普遍地看到这种情况,但是却找不到任何有关这种做法的信息。如果我不得不猜测,原因是您可以有条件地编译是否要在编译中出现这些关键字。

约翰·布林格

为这些关键字创建别名的目的/好处是什么?我相当普遍地看到这种情况,但是却找不到任何有关这种做法的信息。如果我不得不猜测,原因是您可以有条件地编译是否要在编译中出现这些关键字。

是的,通常是这样。您可能还会看到类似的定义,其中包含空的替换文字,例如

#define MY_CONST

,涵盖了您不希望使用关键字的情况。

更大的情况是,这有助于与该语言的各种版本和各种编译器兼容。可以在构建库时编写此类定义(通常适合于用于构建它的工具链),也可以将它们包装在条件编译指令中,这些指令试图在客户端程序创建时决定如何定义宏。编译。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C宏:如何隐藏__at关键字?

来自分类Dev

为什么创建了register关键字?

来自分类Dev

为什么在创建数组时需要“ new”关键字?

来自分类Dev

为什么在创建数组时需要“ new”关键字?

来自分类Dev

为什么我的宏中的_Generic关键字不起作用?

来自分类Dev

为什么有人在循环宏中的子句中使用关键字?

来自分类Dev

为什么我的宏中的_Generic关键字不起作用?

来自分类Dev

为什么我的宏中的_Generic关键字不起作用?

来自分类Dev

为什么我们要为表象班成员使用Kotlin中的“ override”关键字?

来自分类Dev

为什么“惰性”是关键字而不是标准库类型?

来自分类Dev

为什么“懒惰”是关键字而不是标准库类型?

来自分类Dev

如何创建自定义关键字C#

来自分类Dev

如何创建自定义关键字C#

来自分类Dev

为什么 C++ 中的关键字 struct 与 C 中的关键字 struct 不同?

来自分类Dev

“ restrict”关键字暗含的严格别名级别是什么?

来自分类Dev

noexcept关键字和_NOEXCEPT宏有什么区别?

来自分类Dev

这个Clojure doto宏示例中的:printed关键字的目的是什么?

来自分类Dev

关键字别名

来自分类Dev

关键字别名

来自分类Dev

为什么strict关键字不属于C ++?

来自分类Dev

C ++-为什么这里需要'template'关键字?

来自分类Dev

为什么inline关键字在C ++中存在?

来自分类Dev

为什么strict关键字不属于C ++?

来自分类Dev

为什么C关键字区分大小写?

来自分类Dev

为什么使用“ new”关键字创建的对象引用相同的对象?

来自分类Dev

为什么创建类型为“ IEnumerable <MyClass> myVar”的变量不需要NEW关键字?

来自分类Dev

C关键字中断

来自分类Dev

C ++函数的关键字?

来自分类Dev

C关键字中断

Related 相关文章

  1. 1

    C宏:如何隐藏__at关键字?

  2. 2

    为什么创建了register关键字?

  3. 3

    为什么在创建数组时需要“ new”关键字?

  4. 4

    为什么在创建数组时需要“ new”关键字?

  5. 5

    为什么我的宏中的_Generic关键字不起作用?

  6. 6

    为什么有人在循环宏中的子句中使用关键字?

  7. 7

    为什么我的宏中的_Generic关键字不起作用?

  8. 8

    为什么我的宏中的_Generic关键字不起作用?

  9. 9

    为什么我们要为表象班成员使用Kotlin中的“ override”关键字?

  10. 10

    为什么“惰性”是关键字而不是标准库类型?

  11. 11

    为什么“懒惰”是关键字而不是标准库类型?

  12. 12

    如何创建自定义关键字C#

  13. 13

    如何创建自定义关键字C#

  14. 14

    为什么 C++ 中的关键字 struct 与 C 中的关键字 struct 不同?

  15. 15

    “ restrict”关键字暗含的严格别名级别是什么?

  16. 16

    noexcept关键字和_NOEXCEPT宏有什么区别?

  17. 17

    这个Clojure doto宏示例中的:printed关键字的目的是什么?

  18. 18

    关键字别名

  19. 19

    关键字别名

  20. 20

    为什么strict关键字不属于C ++?

  21. 21

    C ++-为什么这里需要'template'关键字?

  22. 22

    为什么inline关键字在C ++中存在?

  23. 23

    为什么strict关键字不属于C ++?

  24. 24

    为什么C关键字区分大小写?

  25. 25

    为什么使用“ new”关键字创建的对象引用相同的对象?

  26. 26

    为什么创建类型为“ IEnumerable <MyClass> myVar”的变量不需要NEW关键字?

  27. 27

    C关键字中断

  28. 28

    C ++函数的关键字?

  29. 29

    C关键字中断

热门标签

归档