T(x) 是否被视为强制转换
Is T(x) considered a cast?
以下是演员表:
int foo = (int) somefloat;
但是,这算不算演员阵容?
int foo = int( somefloat );
更重要的是,如果两者之间存在差异,则生成的编译代码是否不同?
第二个示例通常称为函数样式转换,并已添加到C++但两者在语义/目标代码方面没有区别。
以下是添加函数样式转换的原因的一个很好的解释:
C++函数式强制转换的目的究竟是什么?
结果没有区别,但是在 C 中只能使用第一个示例。在C++中,您可以同时使用两者。
是的,这也是一个演员表。C++启用这种转换样式,C 语言只有(type)expression
格式转换。它们是等效的。
相关文章:
- 是否可以从int转换为enum类类型
- 隐式转换是否应该在模板参数的上下文中工作?
- C++ stod:字符串到浮点转换是否一致
- 自动(toCast)显式转换是否计划在未来C++标准?
- 类类型的左值到右值转换:是否涉及复制?
- 矢量之间的转换是否定义了行为
- 如何检测 W2A 转换是否完全成功
- interpret_cast和c样式强制转换是否兼容(按照c++标准)
- 仅更改常量性的指针强制转换是否可以调用未定义的行为
- C++ 强制转换是否会创建新对象
- 在类树中使用动态强制转换是否可以接受
- 在C++中的函数调用内部执行强制转换时,强制转换是否真的有效
- 检查显式强制转换是否成功
- 如果派生类只包含方法(没有成员变量),向下强制转换是否安全?
- 使用这种智能指针强制转换是否安全?
- 类型转换是否消耗额外的CPU周期?
- 在void*和void*之间进行强制转换时,混合使用静态强制转换和重新解释强制转换是否不安全?
- 类型转换是否在内部使用条件?(C / c++, c#)
- 如何检测转换是否在 c++0x 中失败
- 如何在CRTP中实现向下转换是否有效的编译时检查