小编qua*_*ant的帖子

C++ 如何简化仅函数调用不同的成员函数

我需要创建 10 个函数,这些函数非常长并且除了每个函数中的一行代码之外在各个方面都相同。这行代码是一个函数调用。有没有办法将其压缩为一个函数?前任。

int doSomethingOne()
{
...
one();
...
}

int doSomethingtwo()
{
... // same as one
two();
... // same as one
}
Run Code Online (Sandbox Code Playgroud)

c++ function simplify

3
推荐指数
1
解决办法
106
查看次数

区分函数和类(函子)

我有一个名为 GreaterThan 的函数和类。

template <typename T>
bool GreaterThan(const T& number)
{
    return number > 100;
}
Run Code Online (Sandbox Code Playgroud)
template <typename T>
class GreaterThan
{
    private:
        T value;
    public:
        GreaterThan(T x) : value(x) {}
        ~GreaterThan() {}
        
        bool operator()(T& compare)
        {
            return compare > value;
        }
};
Run Code Online (Sandbox Code Playgroud)

我如何区分:

  1. std::find_if(v1.begin(), v1.end(),GreaterThan<int>); // error
  2. std::find_if(v1.begin(), v1.end(),GreaterThan<int>(100));

并让编译器知道 1) 应该调用该函数?

c++ templates function functor

0
推荐指数
1
解决办法
80
查看次数

标签 统计

c++ ×2

function ×2

functor ×1

simplify ×1

templates ×1