C++ add()函数的四种实现方式

240 阅读1分钟

直接看源码:

#include <QApplication>
#include <iostream>

int add1(int a, int b)
{
    return a + b;
}

class ADD
{
public:
    int operator()(int a, int b)
    {
        return a + b;
    }
};

template <typename T, typename U>
auto add3(T a, U b) -> decltype(a + b)
{
    return a + b;
}

auto add4 = [](int a, int b) -> int {
    return a + b;
};

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    ADD add2;
    std::cout << add1(3, 4);
    std::cout << add2(3, 4);
    std::cout << add3(3, 4);
    std::cout << add4(3, 4);

    return a.exec();
}