trait和policy的区别在何处:
policy更加注重行为,trait则更加注重于类型。
trait表述了模板参数的一些自然的额外属性。
policy表述了泛型函数和泛型类的一些可配置行为(通常都具有被经常使用的缺省值)
下面是针对trait的一些事实:
- trait可以是fixed trait(不需要通过模板参数进行传递的trait)
- trait参数通常都具有很自然的缺省值(该缺省值很少会被改写,或者是不能被改写)
- trait参数可以紧密依赖于一个或多个主参数
- trait通常都是用trait模板来实现的
下面是针对policy class的一些事实:
- 如果不以模板参数的形式进行传递的话,policy class几乎不起作用
- policy参数并不需要具有缺省值,而且通常都是显式指定这个参数
- policy参数和属于同一个模板的其他模板参数通常都是正交的
- policy class一般都包含了成员函数
- policy既可以用普通类来实现,也可以用类模板来实现
类型函数:
值函数:函数接收的是某些值,返回结果也是值
类型函数:一个接收某些类型实参,并且生成一个类型作为函数的返回值
sizeof就是一个非常有用的、内建的类型函数。