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


直接上代码

 

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();
}

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM