gpt4 book ai didi

c++ - template 获取指向的对象类型

转载 作者:搜寻专家 更新时间:2023-10-31 01:08:30 25 4
gpt4 key购买 nike

我正在尝试编写一个通用函数来计算数组中的位。我正在尝试使用模板 来定义函数。

template <typename TYPE_T>
size_t countBits (TYPE_T testeeA, const size_t sizeA)
{
size_t count = 0;

for (size_t item = 0; item < sizeA; item++)
{
for (TYPE_T bit = 1; bit != 0; bit += bit)
{
if ((testeeA[item] & bit) == bit) count++;
}
}
return (count);
}

但是当 TYPE_Tchar* 时,我需要第二个 TYPE_Tchar

我在 template 参数中尝试了 typename TYPE_T * 但 VS2012 C++ barfed。

我可以在预处理器宏中写这个:

#define COUNTBITS(TYPE_T) \
size_t countBits (TYPE_T * testeeA, const size_t sizeA) \
{ size_t count = 0; \
for (size_t item = 0; item < sizeA; item++) \
{ for (TYPE_T bit = 1; bit != 0; bit += bit) \
. . .

有什么建议吗?

谢谢

最佳答案

你想要这样的东西:

template <typename TYPE_T>
size_t countBits (const TYPE_T* testeeA, const size_t sizeA) {...}

这样,如果您将 char* 指针传递给 countBitsTYPE_T 将解析为 char

关于c++ - template <pointer> 获取指向的对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17957032/

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