這可能不是在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