例如我可以用c写:
int sum(int a, int b);
void print(int a, int b, int (*f)(int, int));
问题是我可以派接线员吗?
print(12, 13, sum);
// print(12, 13, operator +); compilation error
最佳答案
很遗憾,这是不可能的。 C++ 标准库中有一些常用运算符的包装器,在 functional
中标题,例如 std::plus<T>
.但它不适用于您的代码,因为您的 print
函数需要一个特定的函数参数 plus<int>
不是。
取而代之的是,尝试传递一个模板参数,效果更好:
template <typename BinaryFunction>
void print(int a, int b, BinaryFunction f);
print(12, 13, std::plus<int>());
关于c++ - 我可以将运算符作为参数发送给函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1448641/