【发布时间】:2015-11-25 04:04:30
【问题描述】:
It is said C 风格的转换只是尝试应用不同的 C++ 转换组合,并使用第一个允许的组合。但是,我有一种感觉,我听说有些情况只有 C 风格的转换可以处理,而 C++ 转换的组合是不允许的。
我错了吗?在 any 上下文(在 C++ 中)中的 any C 样式转换是否可以用 C++ 转换的适当组合替换?
UPD感谢Cheers and hth. - Alf,我们有了一个C++ 强制转换无法处理的示例,这意味着它们无法产生已定义 和预期 行为.高级问题是提供一个 C++ 强制转换无法处理的示例,这意味着它甚至无法编译?
【问题讨论】:
-
“我有一种感觉,我听说有些情况只有 C-style cast 可以处理,而不允许任何 C++ casts 的组合”——我怀疑你听到的是C 允许一些 C++ 不允许的类型转换。就 C++ 类型转换而言,这与 C 风格类型转换的 含义 无关。然而,我没有一个方便的例子。
-
@JohnBollinger,您仍然可以通过组合 C++ 样式转换来执行相同的转换。
-
-
不是一直都有
reinterpret_cast吗? -
@CompuChip 不,
reinterpret_cast甚至不能做一些事情static_cast可以,而两者都与const_cast正交。