gpt4 book ai didi

c++ - 如何获取整数模板参数的值?

转载 作者:太空宇宙 更新时间:2023-11-04 15:06:50 25 4
gpt4 key购买 nike

标题可能令人困惑,但假设我有一个模板:

template <typename T, size_t offset>
struct offsetedIdxArray
{
//...
}

创建实例后:

static const size_t offset(1701);
offsetedIdxArray<zmq::socket_t, offset> oia;

有没有办法从oia 获取偏移量变量。我知道我可以只使用偏移量,但从代码风格的角度来看,如果可能的话,我更喜欢从 oia 获取它。

编辑:我正在寻找一种在结构内部没有辅助变量的情况下获得偏移量的方法...

最佳答案

如果您想从 offsetedIdxArray<T,N> 中获取信息对象而不向类模板添加任何成员,您可以使用模板函数:

#include <iostream>
#include <cstddef>

template <typename T, size_t offset>
struct offsetedIdxArray
{
};

template <typename T, size_t offset>
size_t getOffset(const offsetedIdxArray<T, offset>&) {
return offset;
}

int main()
{
offsetedIdxArray<int,5> oia;
std::cout << getOffset(oia) << "\n";

}

否则,您可以按照其他帖子中的建议添加静态常量或枚举数据成员。

关于c++ - 如何获取整数模板参数的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12314807/

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