首页 > 编程语言 > 详细

c++ 可变参数的打包到tuple,使用tuple传递参数

时间:2021-06-04 14:24:17      阅读:86      评论:0      收藏:0      [点我收藏+]

直接上代码

 

void Add(int a, double b, short c, const char * f) {
	std::cout << f << a << ", " << b << ", " << c << ";\n";
}

void *p = nullptr;

template <typename ... Args>
void CallLater(Args... args) {
    
	auto c = std::make_tuple(args...);
	auto ptuple = new decltype(c);
	*ptuple = c;
	p = (void *)ptuple;
	

}

void doCall(){
    using v = std::tuple<int , double , short , const char * >;
    v * ptuple = static_cast<v *>(p);
    std::apply(Add, *ptuple);
    delete ptuple;
    p = nullptr;
}

void main()
{
    CallLater(1, 3.5, (short)3, "this");
    doCall();
}

  

 

c++ 可变参数的打包到tuple,使用tuple传递参数

原文:https://www.cnblogs.com/arnorld/p/14849218.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!