C ++功能组合 - 组合方法优化

时间:2013-06-19 09:40:06

标签: c++ functional-programming

我编写了自己的撰写方法,该方法适用于POD,如何优化这种方法来处理复制费用昂贵的用户定义类型?

#include <iostream>

template<typename T, typename U, typename V>
std::function<V(T&&)> compose(std::function<V(U)> f, std::function<U(T)> g)
{
    std::function<V(T&&)> result = [&](T&& value){
        return f(g(value));
    };
    return result;
}

int main(int argc, const char * argv[])
{

    std::function<int(int)> f = [](int v){ return v + 1;};
    std::function<int(int)> g = [](int v){ return v + 2;};

    std::function<int(int)> h = compose(f, g);

    std::cout << "compose(f,g): " << (h(5)) << std::endl;

    return 0;
}

布莱尔

1 个答案:

答案 0 :(得分:0)

答案是boost::call_traits<T> ...