摘要: 这段时间看C++标准库,看到有一个求公共类型的实用函数common_type<>;其实现是如下:template<typename T1,typename T2> struct common_type<T1,T2> { typedef decltype(true?declval<T1>(),declval<T2>()) type; }刚开始还觉得奇怪,条件永远为true,不就是直接计算T1吗,想当然的以为产生公共类型不就是T1的类型吗?后然通过一个实例上机实验才发现不是这么回事。于是找到关于条件运算符的说明;我们知道条件运算符?:是C 阅读全文
posted @ 2013-04-12 13:54 xuning2516 阅读(328) 评论(0) 推荐(0) 编辑
摘要: C++11 提供了许多的类型特征和型别实用函数。1 declval01122 /// declval 01123 template<typename _Tp> 01124 struct __declval_protector 01125 { 01126 static const bool __stop = false; 01127 static typename add_rvalue_reference<_Tp>::type __delegate(); 01128 }; 01129 01130 template<typename _... 阅读全文
posted @ 2013-04-12 10:09 xuning2516 阅读(306) 评论(0) 推荐(0) 编辑