C++11一个元组的简单实现
发布日期:2022-03-03 10:43:57
浏览次数:2
分类:技术文章
本文共 1369 字,大约阅读时间需要 4 分钟。
下面是实现一个元组的简单思路
代码如下:
#ifndef MY_TUPLE_HPP#define MY_TUPLE_HPPtemplateclass my_tuple {};template class my_tuple {public: typedef my_tuple<> base_type; typedef my_tuple this_type; typedef T element_type; my_tuple(const T& t) : element_(t) {} T& get() { return element_; }private: T element_;};template class my_tuple : public my_tuple {public: typedef my_tuple base_type; typedef my_tuple this_type; typedef T element_type; my_tuple(const T& t, Args... args) : base_type(args...), element_(t) {} T& get() { return element_; }private: T element_;};template struct select {};template struct select<0, my_tuple >{ typedef my_tuple this_type; typedef T element_type;};template struct select >{ typedef typename select >::this_type::base_type this_type; typedef typename select >::this_type::base_type::element_type element_type;};template struct counter {};template <>struct counter<>{ static const size_t count = 0;};template struct counter { static const size_t count = counter ::count + 1;};template typename select >::element_type&my_tuple_get(my_tuple & tup){ return (static_cast >::this_type&>(tup)).get();}template my_tuple make_my_tuple(Args... args){ typedef my_tuple tuple_type; return tuple_type(args...);}template size_t get_my_tuple_size(my_tuple & tup){ return counter ::count;}#endif
转载地址:https://blog.csdn.net/yangjie569889321/article/details/79234489 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年03月22日 04时10分56秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
YOLO-V3 Bbox预测解读
2019-04-26
论如何做到轻量级网络(Unet为例)
2019-04-26
Mask RCNN简图
2019-04-26
Cascade RCNN
2019-04-26
牛顿法
2019-04-26
对深度学习目前以及未来的看法 (AI时代可能延后,但总会到来)
2019-04-26
计算机网络应用层笔记
2019-04-26
地址栏输入网址enter查询后发生了什么
2019-04-26
计算机网络链路层知识点
2019-04-26
冲突域和广播域
2019-04-26
3NF分解(无损+4NF)
2019-04-26
计算机各层网络协议
2019-04-26
划分子网的意义
2019-04-26
Flutter 上的一个 Bug 带你了解键盘与路由的另类知识点
2019-04-26
Flutter 上默认的文本和字体知识点
2019-04-26
Android Studio 4.0 稳定版发布了
2019-04-26
带你深入理解 Flutter 中的字体“冷”知识
2019-04-26
给 Android 和 iOS 开发人员不一样的 Flutter 基础讲解
2019-04-26
不一样角度带你了解 Flutter 中的滑动列表实现
2019-04-26