C++ Coding Standards:模板和泛型

原创 2005年05月25日 12:27:00

By Herb Sutter, Andrei Alexandrescu

树人译

模板和泛型

64.      明智地混合使用静态和动态多态。

比单纯的部分的总和更多:静态和动态多态是互补的。理解它们的权衡标准,在各自最好的情况下使用它们,并且混合使用它们来达到两全其美。

65.      有意地和显式地定制模板。

有意图要优于偶然性,显式要优于隐式:在编写模板的时候,要有意识和正确地提供定制点,而且要清楚地说明它们。在使用模板的时候,要知道模板希望你如何定制它来为你的类型所使用,并恰当地定制模板。

66.      不要特化函数模板。

模板特化只有在它能正确地实行时,它才是有益的:在扩展其他某个人的函数模板(包括:std::swap)的时候,尽量避免去特化它;作为替换,我们可以写一个函数模板的重载函数,并把它放到这个重载函数所用于的类型所在的名字空间中去。(参见:Item57)在你编写自己的函数模板的时候,避免鼓励函数模板自身的直接特化。

67.      不要盲目地编写非泛型代码。

依赖于抽象,而不是细节:使用最最泛型化和抽象的方法来实现功能的一小块。

【C++, Java】C++模板和Java泛型之间有何不同?

许多人都认为模板template和泛型generic这两个概念是等价的,因为两者都允许我们按照List的样式编写代码。 不过,各种语言是怎么实现该功能,以及为什么这么做,却千差万别。 Java的泛型的...
  • michellechouu
  • michellechouu
  • 2015年07月24日 18:02
  • 3402

转:C++ Coding Standards

/*************************************************************************Scripts of C++ Coding Stan...
  • bat603
  • bat603
  • 2006年12月19日 16:42
  • 2591

浅谈Java和C#泛型及C++模板

最近偶然接触到了类型擦除(TypeErasure)这个概念。通过查了一些资料才知道Java和C#的泛型是有一些区别的,当然与C++的模板也不一样。因此做了如下整理。 泛型的本质就是让你的类型能够拥有...
  • jackliu91
  • jackliu91
  • 2014年11月24日 18:29
  • 1156

JAVA的泛型和C++的模板的区别与联系

总结一下java的泛型编程和c++模板的区别和联系。 泛型本质上是提供类型的"类型参数",它们也被称为参数化类型(parameterized type)或参量多态(parametric polymo...
  • a2211455
  • a2211455
  • 2015年11月13日 15:28
  • 2089

c++模板和java泛型之间有何不同

解法: /**MyClass.h**/ template class MyClass{ public: static int val; MyClass(int v){ val = v...
  • wangfengfan1
  • wangfengfan1
  • 2015年09月07日 16:10
  • 587

[C++]模板与泛型编程

模板与泛型编程 本文尝试着介绍对泛型编程的理解,从而扩展我们的template编程。泛型编程是C++中非常重要的一部分,它使得我们节省了很多编写不同代码的体力。 1. 了解隐式接口和编译器多态与O...
  • stary_yan
  • stary_yan
  • 2016年05月04日 11:56
  • 1146

C++和C#之泛型编程对比

摘要泛型编程的思想由来已久,由STL之父-Alex Stepanov提出。Ada、C++、以及最近的Java和C#都相继加入了对泛型编程的支持。其中已纳入C++标准的STL ,就是泛型编程的一个成功的...
  • soudog
  • soudog
  • 2007年07月30日 15:33
  • 5779

关于C++泛型编程,模板声明和定义最好在同一个文件的解释。

关于C++泛型编程 模板的 声明和实现 不能分离的原因: 1.泛型-模板 template 2.模板不是变量,模板就是模板。 3.模板需要实例化成类,就像是内联函数进行替换一样,替换模板变量 t...
  • u012997311
  • u012997311
  • 2016年04月07日 10:09
  • 1193

C++ 模板类,泛型

一、 范例: // Tclass.h #ifndef __T_CLASS_H__ #define __T_CLASS_H__ template class Tclass { public: ...
  • henuyx
  • henuyx
  • 2014年09月21日 22:56
  • 2640

C++ 函数模板(十四)--template 泛型函数模板、通用函数、重载模板

#include #include using namespace std; //函数模板,typename 等价于 class template void test(AnyType &a, A...
  • Jason_chen13
  • Jason_chen13
  • 2016年09月07日 12:01
  • 801
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ Coding Standards:模板和泛型
举报原因:
原因补充:

(最多只允许输入30个字)