函数模板专业化语法

Function Template Specialization Syntax

本文关键字:语法 专业化 函数模板      更新时间:2023-10-16

给定此函数模板:

template<typename A> void func (A param) {...}

为了写一篇专业文章,我们可以使用这个成语(A)

template<> void func<> (int param) {...}

或者这个(B)

template<> void func<int> (int param) {..}

A和B之间有什么区别吗?如果两者相同,首选语法是什么?为什么?

A.)template<> void func<> (int param) {...}

B.)template<> void func<int> (int param) {..}

A和b之间有什么区别吗

从技术上讲,B明确指定了模板参数,而A减少了其参数,但对用户来说,这只是你展示函数的方式。

如果两者相同,首选语法是什么?为什么

由于定义两者会导致多重定义错误(即它们是同一个函数),因此如何呈现函数实际上取决于个人偏好。

我个人偏爱B,因为它完全定义并明确说明了功能的意图,但这也是我个人偏好

希望能帮助