条款46需要类型转换时请为模板定义非成员函数
条款47请使用traits class表现类型信息条款...
分类:
编程语言 时间:
2015-03-13 22:21:38
阅读次数:
248
1. 非类型模板形参是指模板的形参是基本类型比如int,如template array_init(T (¶m[N))2. 模板特化是指为特定的类型重现实现,针对的是模板不能满足所有情况的一种补充3. 模板的traits就是具有这种功能的模板类:从模板形参中拿到需要的type,比如说itera...
分类:
其他好文 时间:
2015-03-10 18:43:31
阅读次数:
140
不论是泛型思维或STL的实际运用,迭代器(iterators)都扮演者重要的角色。迭代器的中心思想在于:将数据容器(container)和算法分开,彼此独立设计,最后再以迭代器这种工具将两者粘合起来。 一.模板特化与偏特化 假设下面有一个class template如下:templateclas.....
分类:
其他好文 时间:
2015-03-06 20:44:48
阅读次数:
173
最近在看《STL源码剖析》,到了将iterator_traits的这一节(3.4)。实现它的代码倒是看得懂,但是对它的使用场景却是有点摸不着头脑。
让我先贴一段代码,然后我们再慢慢看。
#include
#include
using namespace std;
//第一种方式
template
struct iter_traits
{
typedef typename I...
分类:
其他好文 时间:
2015-03-03 23:44:48
阅读次数:
370
template struct function_traits : public function_traits {};template struct function_traits { typedef ReturnType(*pointer)(Args); typedef std::functio...
分类:
其他好文 时间:
2015-02-13 11:33:09
阅读次数:
216
这段时间做了用Python做了一个科学计算的项目,项目中用到了很多的第三方Python库,包括PyQt、traits、traitsui、matplotlib、pyface、table、numpy、tvtk等等。Python打包traits和traitsui很麻烦,选用了py2exe、bbfreeze等打包工具,最后在google的帮助下使用了py2exe解决了问题。
其主要难点是要知道你的项目中...
分类:
编程语言 时间:
2015-01-23 20:07:57
阅读次数:
318
曾经曾在一个项目中碰到过一个挺简单的问题,但一时又不能用普通常规的方法去非常好的解决,最后通过C++模板的活用,通过traits相对照较巧妙的攻克了这个问题。本文主要想重现问题发生,若干解决方式的比較,以及最后怎样去解决的过程,或许终于的方案也并非最好的方案,但至少个人认为从发现到思考到解决到改善,...
分类:
编程语言 时间:
2015-01-03 09:18:38
阅读次数:
246
#include #include #include using namespace std;templateT mul(T a, P b) { return a * b;}templatestring mul(string a, int b) { string res; for ...
分类:
编程语言 时间:
2014-12-23 16:59:54
阅读次数:
189