当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

Functional Programming与C++的模板元编程[VC/C++编程]

赞助商链接



  本文“Functional Programming与C++的模板元编程[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

先来看一个例子:

#include <stdio.h>
template <int depth>
class Fibnacci
{
public:
    static const int value = Fibnacci<depth-1>::value + Fibnacci<depth-2>::value;
};

template <>
class Fibnacci<0>
{
public:
    static const int value = 0;
};

template <>
class Fibnacci<1>
{
public:
    static const int value = 1;
};

template <int depth>
void printFibnacci()
{
    printFibnacci<depth-1>();
    wprintf(L"%d\n", Fibnacci<depth>::value);
}

template <>
void printFibnacci<0>()
{
    wprintf(L"%d\n", Fibnacci<0>::value);
}

int main()
{
    printFibnacci<8>();
    return 0;
}

Fibnacci数列,相信是个程序员都能写出来,重点是,这个Fibnacci数列的计算美满是在编译时完成!背面的print也是如此,当你把参数调得很大时,运行时间不会有任何改变,但是你会耗费长时间在编译阶段.

假如你据说过一些模板元编程,你一定会知道"C++模板是图灵完备的"这个说法.模板元是若何图灵完备的?答案是,模板元跟Functional原理是一样的.

模板的本质是定义与替换,lambda函数的本质也是定义与替换,这里的替换实际上符合的是数学中的lambda演算理论:


  以上是“Functional Programming与C++的模板元编程[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • CREATE FUNCTION sqlserver用户定义函数
  • sql2k中新增添的Function的sqlbook 的帮忙
  • Functional Programming与C++的模板元编程
  • <b>php call_user_func的简介</b>
  • mssql_connect() [function.mssql-connect]办理筹划
  • 变态配置 disable_functions
  • <b>Flash ActionScript高级本领:深化理解Function(2)</b>
  • <b>Flash AS高级知识:深化理解Function</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .