gpt4 book ai didi

c++ - 运算符可以用作函数吗? (C++)

转载 作者:太空狗 更新时间:2023-10-29 19:37:46 25 4
gpt4 key购买 nike

这类似于我问过的另一个问题,但是,我创建了一个表达式类,其工作方式如下:

expression<int, int> exp(10, 11, GreaterThan);
//expression<typename T, typename U> exp(T val1, U val2, oper op);
//where oper is a pointer to bool function(T, U)

其中 GreaterThan 是先前定义的函数。我想知道为什么我不能这样做:

expression<int, int> exp(10, 11, >);

特别是当 > 被重载为

bool operator>(int a, int a){return (a > b);}

与 GreaterThan 相同:

bool GreaterThan(int a, int b){return (a > b);}

返回 bool 值并接受两个参数的函数。

最佳答案

我不确定这是否是您要问的,但是 C++ 标准库为许多 C++ 运算符提供了函数对象,在 header <functional> 中声明。 .这包括 std::plus (+), std::minus (-), std::multiplies (*), std::divides (/), std::modulus (%), std::negate (一元 -),std::equal_to (==), std::not_equal_to (!=), std::less (<), std::greater (>), std::less_equal (<=), std::greater_equal (>=), std::logical_and (&&), std::logical_or (||), std::logical_not (!)

所以也许你只是想要

expression<int, int> exp(10, 11, std::greater<int>());

关于c++ - 运算符可以用作函数吗? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/992320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com