这可能不是在C++中任何可能的功能,但我在网上搜索,发现没有什么似乎工作。C++功能是通过与任意数量的参数
我不知道这是如何工作的,但如果我通过一个函数“A”至另一个功能的“B”,我可以在“A”执行功能“B”,例如:
template<typename Func>
void process(Func func) {
func();
}
void myVoidFunction() {
cout << "I did something!?" << endl;
}
process(myVoidFunction); // This will run myVoidFunction();
现在,我不知道我怎么会与任意数量的参数的函数做到这一点,我的基本理论是这样的(我希望你知道我的意思):
template<typename Func>
void process(Func func, ...) {
func(...);
}
void myNewFunction(int, int, char*) {}
process(myNewFunction, 1, 2, "Hello World!");
即使过程可以返回更好相同类型的给定功能(如果那不是要求太多了:P)
我不希望任何库这样做,我敢肯定有一种方法使用JUST C++。请帮忙:_ |
你的答案,并@ ecatmur的在本质上是相同的,除非你有'参数数量&& ... args',而他在'process'签名'参数数量...... && args'。都可以接受吗? – Chowlett 2013-03-18 13:51:17
我很久以前试过这个,试过用它玩,这个直接不用编译: – Luka 2013-03-18 13:51:27
@Chowlett:不,他可能犯了一个错字。只有'Args && ...'在语法上是正确的。 – 2013-03-18 13:52:45