【发布时间】:2020-09-13 15:11:23
【问题描述】:
我现在有这段代码,到目前为止它似乎可以工作,但我想知道是否有一种方法可以以更优雅的方式获得完全相同的结构,因为到目前为止我的方法每次都需要为每个结构复制一个副本。 . 最终目标是拥有一个类型定义的结构,它会根据字节序自动交换字节。
using ResourceHeader_t = struct ResourceHeader_s
{
uint32_t magic;
uint32_t chunkVersion;
uint32_t chunkSize;
};
template<bool bigEndian>
struct ResourceHeader : public ResourceHeader_s
{
ResourceHeader(ResourceHeader_t* ptr) : ResourceHeader_s(*ptr)
{
if (bigEndian)
{
LITTLE_BIG_SWAP(magic);
LITTLE_BIG_SWAP(chunkVersion);
LITTLE_BIG_SWAP(chunkSize);
}
}
};
使用示例:
ResourceHeader<true> resourceHeader((ResourceHeader_t *)fileBuffer);
【问题讨论】:
标签: c++ c++11 templates struct using