【发布时间】:2023-03-05 02:05:01
【问题描述】:
我试图找到一种更优雅的方式来读取和写入结构,而不是将它们转换为 void 指针,然后将大小传递给函数,如下所示:
void write(void* value, size_t length); //Write is some random write function
Type var;
write((void*)var,sizeof(Type));
所以我试图创建一个方法来将任何类型隐式转换为如下结构:
struct VoidPtrReplacement{
uint8_t* bytes;
size_t size;
};
然后我可以(如果我能找到一种方法从任何其他类型隐式转换为这种类型)创建像这样的不错的读写函数:
void write(VoidPtrReplacement* value);
Type var;
write(var);
不幸的是,我能找到从任何其他类型转换为这种类型的唯一方法是将 VoidPtrReplacement 设为模板化结构。我不想这样做,因为我创建的任何使用这个结构的写函数也必须被模板化。
所以我的问题是:我可以创建一个不属于任何结构或类的隐式转换函数(或者是否有更好的方法来做到这一点)?
【问题讨论】: