2
谷歌搜索C++函子語法帶來了很多不同的結果,我不認爲我看到其中的任何需求。有些使用模板,有些使用單個類,有些則使用多個模板,還有一些使用結構。我不確定我想要做什麼的具體元素。所以現在,我想要做什麼:函子之間選擇兩個函數
我有兩個功能。他們都採取完全相同的參數,但不同的命名,將返回不同的結果,但返回類型也是相同的,例如,
unsigned foo1(char *start, char *end);
unsigned foo2(char *start, char *end);
我只是想選擇哪個函數根據布爾變量的值調用。我可以只寫一個謂詞來在兩者之間進行選擇,但這似乎並不是一個優雅的解決方案。如果這是C,我會使用一個簡單的函數指針,但我被告知它們在C++中不能很好地工作。
編輯:由於限制超出我的控制,在這種情況下,我不能使用C++ 11。
啊,std :: function看起來不錯。 「自動」是C++ 11,對嗎? – Eric
@Eric是的,這是正確的。 –
我很感謝你的回答。我應該提到,首先我不能使用C++ 11來解決這個問題。對於那些沒有我的約束的人,你的回答將會非常有用,所以我感謝你。 – Eric