赞
踩
源码如下:
#include <bits/stdc++.h> template <typename ... Tail> class Tuple; template<> class Tuple<> {}; template <typename Value, typename ... Tail> class Tuple<Value, Tail ...> : Tuple<Tail ...> { Value Val; public: Tuple() {} Tuple(Value value, Tail ... tail) : Val(value), Tuple<Tail ...>(tail ...) {} Value value() { return Val; } Tuple<Tail ...> next() { return *this; } }; int main() { Tuple<char, double, std::string> tuple('1', 1.5, "Hello World"); std::cout << tuple.value() << std::endl; std::cout << tuple.next().value() << std::endl; std::cout << tuple.next().next().value() << std::endl; return 0; } ———————————————— 版权声明:本文为CSDN博主「LucienShui」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/xs18952904/article/details/85221921
Tuple<Tail …> next() { return *this; }的理解如下:
class Tuple<Value, Tail …> : Tuple<Tail …> 是中继承关系。
return *this 只是一种类型的强制转换。
强制转换 成功后,返回基类的value
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。