c++14 逆序/反转 tuple
标签: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
评论