• 您的位置我爱Aspx >> VC.Net >> CUJ:普及知识:typeint
  • CUJ:普及知识:typeint

  • 作者:aspxer  来源:internet  日期:2007-5-21 23:48:32  关键字:
  • CUJ:普及知识:typeint

    ss=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center>普及知识 : typeint

    Stephen C. Dewhurst

    (WQ注:这是比Loki还令我震惊的东西,实在难以译好。先放出来让大家都震惊一下,以后我会修订的。)

    --------------------------------------------------------------------------------

    在最近的系列文章中,我们为 C++语言设计和实现了一个typeof功能[注1]。 实现中要求在编译期将表达式的类型转换为一定结构的整型值,而这个整型值在以后还可以解码回原始的类型。我们遇到的问题是编码受到了整型值的长度限制,因为为了达到必须的编译期性能,算法将限定在整型的精度范围(32或64bits)内。而许多“合理的” 类型,编码需要数百bits长度的整型值。 (“不合理的” 类型可能需要极大的整型值)。

    因为通常使用的数据抽象技术在编译期不是可用的,我们无法实现一个扩展精度的整型类型;我们被限定于可以使用在整型常量表达式上的那些操作上。我们的方法是实现一个编译期算术运算,操纵预定义的整型数集合。比如,左移一个4元组整型值(由4个常量表达式c1-c4组合而成),我们可以使用类似于下面的代码:

    typedef ShiftLeft<c4,c3,c2,c1,ModLen> SL;

    enum {

    code1 = SL::code1,

    code2 = SL::code2,

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:自己动手丰衣足食-搞定网页乱码
    下一篇:关于VC代码的编写和调试(三)
  • 相关文章