如何在c++上使用rest/spred操作符(从js)编写函数?



如何在c++上编写这样的函数?

function executor (foo, ...args) {
return foo(...args)
}

我不明白如何在c++中声明模板

你的问题对我来说不是很清楚你在问什么,或者你想做什么。

下面是一个invoke模板函数的例子,它调用传递的函数并将实参传递给函数的形参。这似乎是你的代码片段试图做的。

代码只是一个简单的例子。它不是最优的,因为它没有使用参数的完美转发。不确定要如何处理调用函数的结果,或者处理异常。

#include <iostream>
using std::cout;
template <typename F, typename... Ts>
void invoke(F fn, Ts... args) {
fn(args...);
}
void print(int a, int b) {
cout << "print:" << a << " " << b << "n";
}
void bigprint(int a, int b, int c) {
cout << "bigprint:" << a << " " << b << " " << c << "n";
}
int main() {
invoke(print, 1, 2);
invoke(bigprint, 1, 2, 3);
}

最新更新