本文是学习 boost源码的一些练习 参考文章来自 刘未鹏 C++的罗浮宫(http://blog.csdn.net/pongba) 目录 http://blog.csdn.net/pongba/article/category/37521 检测内嵌类型 检测一个类中是否存在指定的类型 那么只需要利 ...
分类:
其他好文 时间:
2017-11-04 19:42:38
阅读次数:
192
1. type_traits类型萃取 (1)type_traits通过定义一些结构体或类,并利用模板类特化和偏特化的能力,给类型赋予一些特性,这些特性根据类型的不同而异。在程序设计中可以使用这些traits来判断一个类型的一些特性,引发C++的函数重载机制,实现同一种操作因类型不同而异的效果。 (2 ...
分类:
其他好文 时间:
2017-11-01 19:39:57
阅读次数:
207
扮演“特性萃取机”角色,萃取各个迭代器的特性(迭代器的相应类型) 通过class template partial specialization的作用,不论是原生指针或class-type iterators,都可以让外界方便地取其相应类别 ...
分类:
其他好文 时间:
2017-11-01 01:00:48
阅读次数:
155
C++类模板的三种特化,讲得比较全面 By SmartPtr(http://www.cppblog.com/SmartPtr/) 针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型(全特化); 二是特化为引用,指针类型(半特化、偏特化);三是特化为另外一个类模板(复杂点的偏特化)。 用一个 ...
分类:
编程语言 时间:
2017-10-25 00:41:51
阅读次数:
249
近日,在学习的过程中第一次接触到了Typelist的相关内容,比如Loki库有一本Modern C++ design的一本书,大概JD搜了一波没有译本,英文版600多R,瞬间从价值上看到了这本书的价值!!这是题外话。这本书十分经典。其内容对于一个C++新手来说需要时间来理解吸收。在这里记录一下自己的 ...
分类:
编程语言 时间:
2017-09-18 00:20:46
阅读次数:
293
C++模板说到C++模板特化与偏特化,就不得不简要的先说说C++中的模板。我们都知道,强类型的程序设计迫使我们为逻辑结构相同而具体数据类型不同的对象编写模式一致的代码,而无法抽取其中的共性,这样显然不利于程序的扩充和维护。C++模板就应运而生。C++的模板提供了对逻辑结构相同的数据对象通用行为的定义... ...
分类:
编程语言 时间:
2017-09-04 14:50:01
阅读次数:
141
在C++中,模板特化是除了类之外的一种封装变化的方法。模板特化可以通过编译器来对不同的模板参数生成不同的代码。 模板特化通常以模板结构体作为载体。常用技法包括:类型定义、静态成员常量定义和静态成员函数定义。 从不同的角度来看待模板特化,模板特化可以扮演以下角色: 一、函数 模板结构体可以被看做一种函 ...
分类:
编程语言 时间:
2017-08-19 23:44:19
阅读次数:
172
最近在看ceph rgw的源码, 在其客户端数据处理部分遇到std::enable_if的概念,如下: enable_if的作用主要用于模板的匹配,偏特化的一个过程。编译器在类型推导的过程中,会尝试推导所有的重载函数,在此过程在过程中,如果enable_if条件不满足,则会在候选函数集合中剔除此函数 ...
分类:
编程语言 时间:
2017-08-14 16:35:32
阅读次数:
223
转载自:http://hi.baidu.com/klcdyx2008/blog/item/5adbf77b79f316f90bd1873c.html 1.引言C++中的模板分为类模板和函数模板,虽然它引进到C++标准中的时间不是很长,但是却得到了广泛的应用,这一点在STL中有着充分的体现。目前,ST ...
分类:
编程语言 时间:
2017-08-03 01:02:59
阅读次数:
228
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 经验:当std::swap对你的类型效率不高时,提供一个swap成员函数,并确定这个函数不抛出异常 演示样例: stl里的swap算法 namespace std{ template<type ...
分类:
编程语言 时间:
2017-07-31 18:48:57
阅读次数:
182