【发布时间】:2016-01-24 19:02:22
【问题描述】:
我的项目中有几个地方使用reinterpret_cast 从流中读取/写入无符号整数。考虑以下函数:
size_t ReadSize(std::stringstream& stream) {
char buf[sizeof(size_t)];
stream.read(buf, sizeof(size_t));
return *(reinterpret_cast<size_t*>(buf));
}
void WriteSize(std::stringstream& stream, size_t n) {
stream.write(reinterpret_cast<char*>(&n), sizeof(size_t));
}
我开始对使用 reinterpret_cast 感到有些不自在,尽管我对它没有任何问题,所以我想知道,有没有更好的替代方法?假设我在流中只有 4 个字节应该代表这个整数。
static_cast 在这里也不适用,我想。有什么建议吗?
附:我目前不担心使用reinterpet_cast 可能引起的可移植性或其他特定于平台的问题。我正在为一台 Windows 机器写这篇文章。
【问题讨论】:
标签: c++ reinterpret-cast