我正在尝试编写一个通用函数来计算数组中的位。我正在尝试使用模板来定义功能。
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_T在TYPE_T为.char
char*
我尝试typename TYPE_T *
了模板参数,但 VS2012 C++ 失败了。
我可以在预处理器宏中写这个:
#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) \
. . .
有什么建议么?
谢谢