泛型 _Get_deleter_pointer_type
来源:互联网 发布:cocos2d js 粒子效果 编辑:程序博客网 时间:2024/05/19 20:42
在分析 Unique_ptr的 遇到了 _Get_deleter_pointer_type 百思不得其解
所以把这个代码抠出来,测试了一下,终于明白了,写到博客上便于以后查找。
template <class _Ty>struct MyPointer{typedef _Ty* pointer;};template <class _Ty>struct _MyIdentity{typedef _Ty type;};struct _MyWrap_int{_MyWrap_int(int){}};template<class _Val, class _Ty>struct _Get_My_pointer_type{template<class _Uty>static auto _Fn(int)->_MyIdentity<typename _Uty::pointer>;template<class _Uty>static auto _Fn(_MyWrap_int)->_MyIdentity<_Val*>;typedef decltype(_Fn<_Ty>(0)) _Decltype;typedef typename _Decltype::type type;};void main(){_Get_My_pointer_type<int, MyPointer<char>>::type pc; // pc 类型 char*_Get_My_pointer_type<int, char>::type pi;// pi 类型 int*char c; int i;pc = &c;pi = &i;}
_Get_My_pointer_type 应该是首选查找 _Fn(int) 如果传入的_Ty 存在 _Ty::pointer 就选择 _Fn(int)
否则选择 _Fn(_MyWrap_int)
在标准库中,类似 _Get_My_pointer_type 很多
阅读全文
0 0
- 泛型 _Get_deleter_pointer_type
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 漏桶算法和令牌桶算法
- 微信支付服务商开发能力说明文档范本-微信公众号使用教程31
- 【codevs 3115 3116 3117】高精度练习之加/减/乘法
- 微信公众平台编辑器教程-微信公众号使用教程32
- 记得坚持曾经的梦想
- 泛型 _Get_deleter_pointer_type
- 短信通知限制
- WINFORM.FormBorderStyle
- [后缀自动机 DP] LOJ#6071. 「2017 山东一轮集训 Day5」字符串
- Linux下Tomcat重新启动
- 微博深度学习平台架构和实践
- 系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式
- bzoj 5057: 区间k小值5
- 2018年人工智能将赋能所有行业,未来市场将超过400亿美元