【发布时间】:2010-10-08 06:01:32
【问题描述】:
我知道使用 函数模板 是为了使函数具有可移植性,以便它们可以与任何数据类型一起使用。
如果我们对特定数据类型有更有效的实现,那么模板的显式特化也会完成。
但是,除了 Explicit Specialization,我们还可以编写一个 Nontemplate Function,它可以从 main 调用。
这将为我们节省一些处理时间,因为编译器会比 Explicitly Specialized Templated Functions 更快地定位 Nontemplate Functions,这反过来又会提高效率。
那么,当我们可以选择只调用非模板函数时,为什么还要使用显式特化?
如果我错了,请纠正我!
编辑 1:
我的教授告诉我,每当我们制作函数模板并从 main 调用函数时,编译器首先会查找模板化函数,如果无法找到该函数,则它会依次搜索函数模板创建一个模板函数,然后调用它。
【问题讨论】:
-
您是在 C++ 的上下文中说的吗?在这种情况下,重新标记问题以添加 C++ 标记。
-
@Naveen - 谢谢。我现在添加了 c++ 标签。
-
当您说“全局函数”时,您的意思是“非模板函数”,对吧?
标签: c++ templates generics function-templates explicit-specialization