C中的模板参数
发布时间:2020-12-16 10:17:43 所属栏目:百科 来源:网络整理
导读:假设我有任意模板方法,它可以通过值和const引用接收参数(显然,对于普通类型和相应的对象). 在编写模板函数原型时如何处理这种情况? 我可以做类似的事情: template typename T void Foo(T value) { // Do something.}template typename T void Foo(const T
假设我有任意模板方法,它可以通过值和const引用接收参数(显然,对于普通类型和相应的对象).
在编写模板函数原型时如何处理这种情况? 我可以做类似的事情: template <typename T> void Foo(T value) { // Do something. } template <typename T> void Foo(const T& value) { // Do something,yeah. } // Specialization for first prototype. template <> void Foo<int>(int value) { } // Specialization for second prototype. template <> void Foo<Object>(const Object& value) { } 但是这种方法对于简单的函数来说是可以接受的,这些函数纯粹作为其他一些调用的包装器. 如果函数(非模板化版本)里面有很多代码,这意味着我必须复制代码两次. 我可以在这里做些更聪明的东西吗? 解决方法
只需使用const引用ALWAYS,因为将原始类型作为const引用传递没有太多开销.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |