如果我具有专业化的模板功能,是否可以显式调用非专业化的模板?
\left
我的用例是我想编写单元测试,以确保泛型函数及其专业化产生相同的结果。
答案 0 :(得分:2)
否,专业化是 bitCount<std::uint64_t>
。
如果您有一个#define
用于测试,则可以在测试期间使bitCount
超载
template<class IntegerType>
inline IntegerType bitCount(IntegerType bitset)
{
puts("general");
return 0;
}
#ifndef(TEST_BITCOUNT)
template<>
#endif
inline std::uint64_t bitCount(std::uint64_t bitset)
{
puts("specialized");
return 0;
}