c++14 逆序/反转 tuple

2020-12-13 06:16

阅读:488

标签:pac   pen   ios   cat   ace   ++   必须   ati   函数返回   

编译: g++ tuple.cpp -std=c++14
c++14支持函数返回auto的返回类型,c++11需要返回类型后置。
由于 get(tuple)中的N必须是常量,用普通的循环遍历不了,tuple的特性很多是在编译期
完成的。
#include 
#include 

using namespace std;

template
struct RTuple
{
    static auto reverse(T& tup)
    {
        return move( tuple_cat( make_tuple(get(tup)), RTuple::reverse(tup)) );
    }
};

template
struct RTuple
{
    static auto reverse(T& tup)
    {
        return move( make_tuple(get(tup)) );
    }
};

template
struct RTuple
{
    static auto reverse(T& tup)
    {
        return move(tup);
    }
};

int main(int argc, char* argv[])
{
    auto t1 = make_tuple(1,2,3,4);
    auto in1 = RTuple::reverse(t1);
    cout(t1)(t1)(t1)(t1)(in1)(in1)(in1)(in1) t2;
    auto size = tuple_size::value;
    cout 0 )
    //    cout(t2)::reverse(t2);
    size = tuple_size::value;
    cout 0 )
    //    cout(in2)

c++14 逆序/反转 tuple

标签:pac   pen   ios   cat   ace   ++   必须   ati   函数返回   

原文地址:https://blog.51cto.com/hakuyo/2419470


评论


亲,登录后才可以留言!