谷歌搜索 C++ 仿函数语法会带来很多不同的结果,我认为我看不出它们中的任何一个需要什么。有些使用模板,有些使用单个类,有些使用多个,还有一些使用结构。我永远不确定我想做的事情需要哪些特定元素。所以现在,我想做的是:
我有两个功能。它们都采用完全相同的参数,但名称不同,将返回不同的结果,尽管返回类型也相同,例如,
unsigned foo1(char *start, char *end);
unsigned foo2(char *start, char *end);
我只想根据布尔变量的值选择要调用的函数。我可以写一个谓词在两者之间进行选择,但这似乎不是一个优雅的解决方案。如果这是 C,我会使用一个简单的函数指针,但我被告知它们在 C++ 中不能很好地工作。
编辑:由于我无法控制的限制,在这种情况下,我不能使用 C++11。