gpt4 book ai didi

c++ - C++中具有构造函数的模板化typedef结构

转载 作者:行者123 更新时间:2023-12-02 10:10:21 25 4
gpt4 key购买 nike

我现在有这段代码,到目前为止似乎还可以,但是我想知道是否有一种方法可以以一种更优雅的方式获得完全相同的结构,因为到目前为止,我的方法每次都需要为每个结构重复一个代码...最后目标是拥有一个类型定义的结构,该结构将根据字节序自动交换字节。

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++中不需要typedef struct声明。这是C的遗物。
在C++中,在声明了struct ResourceHeader_sstruct ResourceHeader_t或仅是一个简单的struct ResourceHeader之后,可以直接使用同一符号,而无需显式的struct

关于c++ - C++中具有构造函数的模板化typedef结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63872318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com