609得票11回答
何时使用reinterpret_cast?

我对reinterpret_cast和static_cast的适用性有些困惑。从我所了解的来看,一般规则是当类型可以在编译时被解释时使用静态转换(static_cast),因此出现了"static"这个词。这是C++编译器在隐式转换时内部使用的转换。 reinterpret_cast有两种情...

263得票9回答
当将void*转换为任何类型时,我应该使用static_cast还是reinterpret_cast?

在将void*指针转换为另一个指针类型时,static_cast和reinterpret_cast似乎都可以正常工作。是否有理由更喜欢其中一种?

84得票11回答
为什么这个reinterpret_cast无法编译?

我知道reinterpret_cast是很危险的,但我只是想测试一下。我的代码如下:int x = 0; double y = reinterpret_cast<double>(x); 编译程序时,遇到以下错误: 从类型 'float' 到类型 'double' 的转换是无...

69得票3回答
指针类型转换的正确方式

考虑到以下代码(以及VirtualAlloc()返回一个void*): BYTE* pbNext = reinterpret_cast<BYTE*>( VirtualAlloc(NULL, cbAlloc, MEM_COMMIT, PAGE_READWRITE)); ...

65得票3回答
为什么不能在char *和unsigned char *之间进行静态转换(static_cast)?

显然,编译器认为它们是不相关的类型,因此需要使用reinterpret_cast。为什么这是规则?

50得票7回答
reinterpret_cast cast cost

我理解的是,C++ reinterpret_cast 和 C 指针转换只是编译时的功能,并且完全没有性能成本。 这是真的吗?

47得票2回答
reinterpret_cast可以去除限定符。

我在重新解释一个变量时添加了一个问题,但我不知道为什么...int ProgressBar(const uint64_t data_sent, const uint64_t data_total, void const *const data) { Dialog *dialog = r...

47得票3回答
绕过reinterpret_cast限制的constexpr方法

在C++11中,constexpr表达式不能包含reinterpret转换。因此,例如,如果想要操作浮点数中的位,比如找到数字的尾数:constexpr unsigned int mantissa(float x) { return ((*(unsigned int*)&x ...

44得票7回答
为什么C++中有reinterpret_cast,当两个链接的static_cast可以完成它的工作?

假设我想将A*转换为char*,反之亦然,我们有两种选择(我的意思是,很多人认为我们有两种选择,因为两者似乎都可以工作!这就是混淆所在!):struct A { int age; char name[128]; }; A a; char *buffer = static_ca...

41得票1回答
qobject_cast是如何工作的?

我在Qt中找到了以下代码,但是对于这里发生的事情有点困惑。特别是 reinterpret_cast<T>(0) 是什么意思? template <class T> inline T qobject_cast(const QObject *object) { /...