模板元编程

Posted 笨鸟居士的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板元编程相关的知识,希望对你有一定的参考价值。

其实一个重要思想就是利用局部特化。注意特化不仅仅可以用类型,还可以用数值。如下:

 

// 主模板
template<int N>
struct Fib
{
    enum { Result = Fib<N-1>::Result + Fib<N-2>::Result };
};

// 完全特化版
template <>
struct Fib<1>
{
    enum { Result = 1 };
};


// 完全特化版
template <>
struct Fib<0>
{
    enum { Result = 0 };
};

int main()
{
    int i = Fib<10>::Result;
    // std::cout << i << std::endl;
}

 

以上是关于模板元编程的主要内容,如果未能解决你的问题,请参考以下文章

C++模板元编程深度解析:探索编译时计算的神奇之旅

使用模板元编程检测函数可以采用的最大参数数

什么样的C++模板编程可以称为“元编程”? [关闭]

模板Trait 技术与简述template 元编程

C++ 模板元编程的最佳介绍? [关闭]

Item 48:了解模板元编程