C++11 模板元编程(3)-柯里函数(高阶函数的简化)

转载https://www.jianshu.com/p/b56d59f77d53

在函数式编程里面,有个概念叫做函数柯里化(currying),是指一个函数接收部分参数后,并不立即求值,而是继续返回另一个函数

// 1.0
template<int N>
struct CharPointer
{
    using Result = typename Times<N, char, PointerOf>::Result;
};

// 2.0 继承特性
template<int N>
struct CharPointer :Times<N, char, PointerOf>
{
};

// 3.0 using
template<int N> using CharPointer = Times<N, char, PointerOf>;

// example:
template<typename T> using Pointer2Of = Times<2, T, PointerOf>;

猜你喜欢

转载自blog.csdn.net/Hu_yilang/article/details/87937778