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

Function specialization with array argument

本文关键字:函数 专用 数组 参数      更新时间:2023-10-16

是否可以将函数专用化为特定的数组类型?

例如,具有模板函数:

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
}

感谢您的建议和意见。

无法

部分专用化函数模板,因此您可能必须使用单独的重载。