如果 T1 在重新解释选角方面不比 T2 更严格,会发生什么情况?
[expr.reinterpret.cast]/7: 任何对象指针类型 T1* 都可以 转换为另一个对象指针类型 cv T2*。这正是 相当于 static_cast(static_cast(T1_var)) (这…
用于“序列化”的reinterpret_cast接收端的数据、字节顺序和对齐方式
如果我们有一个 POD 结构说 A,我这样做: char* ptr = reinterpret_cast(A); char buf[20]; for (int i =0;i<20; ++i) buf[i] = ptr[i]; network_sen…
c++ reinterpret_cast、virtual 和 templates 可以吗?
在 C++ 中,假设以下类层次结构: class BaseClass { }; class ChildClass : public BaseClass { }; 进一步假设这两个类的工厂类具有公共模板化基类:…
char 和 unsigned char 之间的指针陷阱的reinterpret_cast?
我使用以下函数来创建 UUID 并将其以人类可读的形式写入预先分配的缓冲区中。出了问题。 void createUUID(char* pDst) { UUID lUUIDObj; UuidCreate(&…
选择随机数作为对象 ID?
我正在实现一个引用计数基类,并希望为正在创建的继承该接口的每个对象设置唯一编号。 这是该类的代码片段: HEADER: class Object { const long long…
我怎样才能摆脱这个reinterpret_cast,或者这个用法可以吗?
我有一个具有以下签名的模板成员函数: template void sync(void (*work)(T*), T context); 可以使用指向接受 T* 类型参数的函数的指针来调用它。 con…
多重继承和 this 指针
假设我有这个结构: struct vector_data { double x, y; double& operator[](size_t index) { return * (static_cast(static_cast(this)) + index); }…
我应该使用 C++ reinterpret_cast 优于 C 风格的强制转换?
我有以下模板函数,用于将任何标准类型的数据转储到二进制输出流中。 template static void dump ( const T& v, ostream& o ) { o.write ( reinterpre…
将类对象指针打包成 char * 用于消息队列
是否可以通过 POSIX 消息队列正确且安全地传递类对象指针? 例如, Object *obj = new Object(); mq_send(mqdes, static_cast&obj, sizeof(obj), 1); …
C++ reinterpret_cast,制作唯一编号
最近,我正在使用代码为我的类创建唯一的 int 数字。 我使用了reinterpret_cast(my_unique_name),其中my_unique_name是一个具有唯一值的char []变量…
标准布局类型和reinterpret_cast
如果我已将结构体的成员复制到我的类中,是否可以从我的类转换为结构体? #include #include class Buffer { public: void * address; size_t size; B…
如何使用reinterpret_cast转换为c++中的派生类指针
这是我的测试示例: struct base { virtual ~base(){} int x; }; struct derived: public virtual base { base * clone() { return new derived; } de…