[英]Is there a way to make functions take in an operator as an argument in c++?
假设我有一个如下功能:
#include<iostream>
int func(int a, int b)
{
return a+b;
}
在不使用if else构造的情况下,假设我想将此函数归纳为一个允许我返回ab的运算符“-”,那么我有办法吗?
我碰到了以下有关C的链接 ,并认为了解C ++中是否有任何新功能使其变得更容易是一个好主意?
另外,我是否可以将运算符存储在变量中或将引用传递给变量?
是的,您可以使用模板和可调用对象以有限的方式进行此操作。 只需使用如下模板即可编写函数:
#include <iostream>
template <typename T>
int func(int a, int b, T op) {
return op(a, b);
}
// Call the function here with type.
int main() {
std::cout << func(5, 8, std::plus<int>());
}
您可以按照我所示的方式传递任何这些运算符功能对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.