码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2021-06-04 19:35:50      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:arp   oca   template   bsp   pre   null   c++   control   one   

直接上代码

 

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传递参数

标签:arp   oca   template   bsp   pre   null   c++   control   one   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!