1 integral_constant类这个类是所有traits类的基类,分别提供了以下功能:value_type 表示值的类型value表示值type 表示自己, 因此可以用::type::value来获取值true_type和false_type两个特化类用来表示bool值类型的traits,很多traits类都需要继承它们下面的代码分别来自C++11和Boost,略有差别:C++11包含va...
分类:
编程语言 时间:
2015-04-06 18:45:19
阅读次数:
298
一.类模板
C++中可以将模板的思想应用与类,使得类可以不关注具体所操作的数据类型,而只关注类所实现的功能。
C++中的类模板
---- 提供一种特殊的类以相同的行为处理不同的类型
---- 在类声明前使用template进行标识
---- 用于说明类中使用的泛指类型T
template
class Operator
{
public:
T ...
分类:
其他好文 时间:
2014-10-06 15:03:30
阅读次数:
167
模板与泛型编程--模板特化[续]三、特化成员而不特化类 除了特化整个模板之外,还能够仅仅特化push和pop成员。我们将特化push成员以复制字符数组,而且特化pop成员以释放该副本使用的内存:templatevoid Queue::push(const char *const &val){ ...
分类:
编程语言 时间:
2014-07-09 18:14:29
阅读次数:
212
模版分类
模板分为类模板与函数模板
函数模版:为函数写一个模版,在使用函数时需要指出类型.
Template
返回值类型函数名(形参表){.... }
类模版:为类写一个模版,在使用类时需要指出类型.
Template
class 类名{.... }
类模版内函数类外实现:
在类模板外部定义成员函数,template 函数反回类型类名::函数名(参数列表){函数体}
templ...
分类:
编程语言 时间:
2014-06-24 18:29:03
阅读次数:
254
模板与泛型编程--模板特化引言: 我们并不总是能够写出对所有可能被实例化的类型都最合适的模板。某些情况下,通用模板定义对于某个类型可能是完全错误的,通用模板定义也许不能编译或者做错误的事情;另外一些情况下,可以利用关于类型的一些特殊知识,编写比从模板实例化来的函数更有效率的函数。 compare函数和 Queue类都是这一问题的好例子:与C风格字符串一起使用进,它们都不能正确工作。 compare...
分类:
编程语言 时间:
2014-05-26 03:15:50
阅读次数:
395
模板与泛型编程--模板特化[续]三、特化成员而不特化类 除了特化整个模板之外,还可以只特化push和pop成员。我们将特化push成员以复制字符数组,并且特化pop成员以释放该副本使用的内存:template<>
void Queue::push(const char *const &val)
{
char *new_item = new char[sizeof(val) + 1];
...
分类:
编程语言 时间:
2014-05-24 14:16:21
阅读次数:
339