常量和重新解释强制转换是否在编译时发生?

朦胧的

我读过static_cast在编译时dynamic_cast发生,在运行时发生,因此比慢static_castAdynamic_cast可以返回null ptr(与指针一起使用时),也可以引发不良的强制转换异常。我的问题是什么reinterpret_castconst_cast它们是在编译时还是在运行时发生?我认为解释转换在运行时发生,因为它的行为就像dynamic_cast指示转换是否成功一样。我对么 ?那const_cast是那个编译时间呢?

瓦格纳·帕特里奥塔

动态类型转换是唯一需要在运行时“计算”的类型。所有其他转换都在编译时计算。

  • a的机器代码static_cast是固定的函数,取决于您正在转换FROM和TO的类型。
  • const_cast实际上,a的机器代码不过是允许将const值传递为no-const,反之亦然。因此可以在编译时解决
  • 对于reinterpret_cast,机器代码也可以在编译时解析。一旦它只是“用正在寻找B型的人的眼睛看一下指向A型的指针”。
  • dynamic_cast需要解决虚拟表和调整基于类型FROM和TO的虚方法正确的地址。这就是为什么它更复杂!

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

constexpr和带有重新解释强制转换的静态const void指针的初始化,哪个编译器正确?

来自分类Dev

重新解释无类型标识符的强制转换

来自分类Dev

重新解释强制转换为不同类型的C ++

来自分类Dev

重新解释无类型标识符的强制转换

来自分类Dev

是否可以在编译时将Foo强制转换为ubyte [size]?

来自分类Dev

C ++重新解释类型转换和C样式转换之间的区别

来自分类Dev

为什么不为相同大小类型之间的类型转换重新解释强制强制copy_n?

来自分类Dev

F#强制转换为在编译时未知的类型

来自分类Dev

如何正确地将std :: vector <std :: vector <double>>强制转换为void *并重新解释回去?

来自分类Dev

使用constexpr解决重新解释转换限制

来自分类Dev

静态并重新解释转换-定义的行为?

来自分类Dev

重新解释 std 字符串的 std 向量的转换

来自分类Dev

为什么允许将自身重新解释积分,枚举和成员指针类型重新解释?

来自分类Dev

重新解释内存/指针

来自分类Dev

重新解释终端输出

来自分类Dev

c中的常量数组-检查是否在编译时定义了所有元素

来自分类Dev

在编译时强制HList类型的上限

来自分类Dev

如何在编译时将常量浮点值转换为 4 个字节的十六进制常量值?

来自分类Dev

浮点常量的编译时转换

来自分类Dev

浮点常量的编译时转换

来自分类Dev

gcc在编译时是否对局部变量重新排序?

来自分类Dev

在编译时对整数常量的元组进行排序

来自分类Dev

在编译时提取宏常量中的位数

来自分类Dev

在编译时在C中生成嵌套常量数组

来自分类Dev

避免在编译时用文字替换常量引用

来自分类Dev

如何在编译时打印常量值?

来自分类Dev

重新解释将数组从字符串转换为整数

来自分类Dev

字节序是否在编译时决定?

来自分类Dev

是否可以在编译时读取文件?

Related 相关文章

  1. 1

    constexpr和带有重新解释强制转换的静态const void指针的初始化,哪个编译器正确?

  2. 2

    重新解释无类型标识符的强制转换

  3. 3

    重新解释强制转换为不同类型的C ++

  4. 4

    重新解释无类型标识符的强制转换

  5. 5

    是否可以在编译时将Foo强制转换为ubyte [size]?

  6. 6

    C ++重新解释类型转换和C样式转换之间的区别

  7. 7

    为什么不为相同大小类型之间的类型转换重新解释强制强制copy_n?

  8. 8

    F#强制转换为在编译时未知的类型

  9. 9

    如何正确地将std :: vector <std :: vector <double>>强制转换为void *并重新解释回去?

  10. 10

    使用constexpr解决重新解释转换限制

  11. 11

    静态并重新解释转换-定义的行为?

  12. 12

    重新解释 std 字符串的 std 向量的转换

  13. 13

    为什么允许将自身重新解释积分,枚举和成员指针类型重新解释?

  14. 14

    重新解释内存/指针

  15. 15

    重新解释终端输出

  16. 16

    c中的常量数组-检查是否在编译时定义了所有元素

  17. 17

    在编译时强制HList类型的上限

  18. 18

    如何在编译时将常量浮点值转换为 4 个字节的十六进制常量值?

  19. 19

    浮点常量的编译时转换

  20. 20

    浮点常量的编译时转换

  21. 21

    gcc在编译时是否对局部变量重新排序?

  22. 22

    在编译时对整数常量的元组进行排序

  23. 23

    在编译时提取宏常量中的位数

  24. 24

    在编译时在C中生成嵌套常量数组

  25. 25

    避免在编译时用文字替换常量引用

  26. 26

    如何在编译时打印常量值?

  27. 27

    重新解释将数组从字符串转换为整数

  28. 28

    字节序是否在编译时决定?

  29. 29

    是否可以在编译时读取文件?

热门标签

归档