使用数组参数进行函数专业化

时间:2017-04-05 22:10:01

标签: c++ templates

是否可以为特定数组类型专门化函数?

例如具有模板功能:

template <typename T, size_t size>
void process(T (&arr)[size])
{
    // do smth
}

在这种情况下,是否可以对T=uint8_t进行功能专业化?或者这是唯一合理的解决方案,使用如下所示的重载?

template <size_t size>
void process(uint8_t (&arr)[size])
{
    // do smth else
}

感谢您的建议和意见。

1 个答案:

答案 0 :(得分:3)

无法部分专门化功能模板,因此您可能需要使用单独的重载。