zoukankan      html  css  js  c++  java
  • pcc++ 预编译语言(编辑中)

    pcc++预编译语言( c++ pre-compilation language ) ,是一种面向类的、存在于预编译期的解释语言。专门用来生成c++代码。
    预编译期语言,大大地提高了程序的复用性,提高了运行时效率。
    pc++包括宏机制和模板机制。


    c++ 编译期编程工具:

    template 编译器整数计算 typedefs

    1  templates 更明确地是指 template speciclization(模板特化)--提供编译期间的 if 叙述。一如先前见过的length ,特化版本能够在 typelists和其它型别之间形成差异。
    2 integer calculations  提供真实的数值计算能力。用以从类转化为数值。所有的编译期数值都是不可变的。一旦你为它定义了一个整数常数,例如一个枚举值,就不能再改变它。
    3 typedefs 用来引进“有名类型常数( named type constants  ) 它们是定义之后就被冻结。
    4 递归。对应于c++ 语言中的函数。





    类型识别机制
    sizeof()
    继承

    pcc++的继承表现通过递归来实现。代码的形式类似c++的重载。
    derived to-base 类型转换通过模板偏特化来实现。


     
    1 、最简单的pcc++

    在矩阵转置(matrix inversion)的运算中,通常需要定义两个大小相同而维数交换的数组:

        char original[3][2];
        
    char target[2][3];
    一旦original维数发生变化,target的维数也需要修改。使用sizeof()可使代码表现出更好的适应性:   
        char original[3][2];
        
    char target[ sizeof(a) ];
    sizeof()有惊人的威力,你可以把sizeof用在任何表达式身上。sizeof()在编译直接 传回表达式结果的大小。sizeof()可以感知重载( overloading )、模板具现( template instantiation )、 转换规则( conversion rules ),或任何可发生于c++表达式身上的机制。



    范晨鹏
    ------------------
    软件是一种态度
    成功是一种习惯


  • 相关阅读:
    ubuntu搭建GitLab
    inline,inline-block,block元素的区别
    ES6入门学习
    webpack配置
    angular6之路由
    angular6之Http服务
    angular6之http请求拦截器
    Spring Cloud(6.2):搭建OAuth2 Client
    Spring Cloud(6.1):搭建OAuth2 Authorization Server
    keytool命令的使用
  • 原文地址:https://www.cnblogs.com/diylab/p/1224194.html
Copyright © 2011-2022 走看看