posts - 43,comments - 3,trackbacks - 0
        第一,concept可以想象是一组type requirement。如果说type T 是Concept C的一个model,则T必须满足C的所有条件。
      第二,concept可以想成一组type的集合。例如concept input iterator可以涵盖char*、int*、等类型。如果类型T是concept C的model,意思是说T隶属于C所代表的那个type集合。由于集合中的所有类型都满足那一系列条件,所以这个定义与前一个定义相通。
      第三,concept可以想成是一组合法程序。那么像input iterator   这样的concept,其重要在于find以及其他许多算法都会用到它。这个concept自身包含iterator及那些算法共有的性质。

======================================================================================
基本的concepts:

      所谓正规型别(regular type),是同时兼具Assignable、Default Constructible和Equality Comparable的一个model。自定义的型别都应该是正规型别。

Assignalbe:如果我们能够复制某个型别的object,并且可以将数值赋予该型别的变量身上,这个型别便
                     是   Assignable。注意,Assignable不需要有operator==的重载。

Default Constructible:如果某个型别具有一个default constructor,也就是说我们不需要指定任何初值,就可以构
                                    造该型别的object,那么这个型别便属于Default Constructible。

Equality Comparable:  如果我们可以使用operator==对某个型别做相等比较,而且operator==是表示等价关系的
                                      话该型别便是Equality Comparable。


可序性(Ordering):
LessThan Comparable:如果某个型别能够以某种次序排列,它便隶属于LessThan Comparable。它必须能够以
                                       operator< 作为比较动作,而operator<必须定义出某种一致的可序性。>= 、 <=、>均可
                                       由 operator<定义:x<=y 可以表示为!(y<x)。。。
Strict Weakly Comparable:如果x<y 和 y<x 皆不为真,则x于y便是等价的。这种关系比LessThan Comparable多了
                                             一种等价性传递的性质,但它不同于total ordering,例如:
                                                                  struct name
                                                                {   string first_name;
                                                                     string last_name;
                                                                     }
                                                比较字段限制为first_name,及时两个name
                                                 类型的实例相等,即== 返回true,但两者
                                                  也不是同一的(identical)                                                                     





                  
posted on 2008-02-04 14:23 RUI 阅读(248) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理