panda ID:pandaxcl
81561次访问,排名1163(-1)好友0人,关注者3
pandaxcl的文章
原创 61 篇
翻译 0 篇
转载 0 篇
评论 154 篇
pandaxcl的公告

博客文档资源下载在本人的网站下载!!!

我也优先在我的网站论坛上面回答问题

在研究C++自动化编程好久之后,发现C++自动化编程在国内还是一个空白。所谓的C++自动化编程,简单点说就是采用了C++的高级模板技术配合产生式编程技法实现了C++代码的自我配置,自动维护代码之间的种种一致性问题。关于这个问题的讨论,将会在我的网站上面进行细致的讨论。如果有问题,欢迎来我的网站提问哦。看看下面的我的网站的链接。

EMail:pandaxcl@163.com

QQ:56637059

我的网站: http://www.autodev.net

最近评论
skyapples:public std::list<command*> // 用来记录子命令的命令队列
为什么不把它放在batch里面,而非要来个多重继承,不知道楼主是怎么想的?
skyapples:不得不说,这真是一篇好文章,作者是用心做事情的人
skyapples:不得不说,这真是一篇好文章,作者是用心做事情的人
huxi043715:博主,在很强阿。你的文章也很容易懂。
wangwei200508:呵呵,谢了
您的这里指到自己硬盘了
<a href="file:///D:/work/lex_yacc/chapter01/lexyacc.rar.png" target="_top">这里</a>
文章分类
收藏
    相册
    友情连接
    小熊猫
    我的另外一个博客
    我的网站-自动化编程社区
    我的论坛-自动化编程社区论坛
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 C++中模板构造函数和模板转义运算符的妙用收藏

    新一篇: Lex和Yacc从入门到精通(3)--一个极其简单的lex和yacc程序 | 旧一篇: Lex和Yacc从入门到精通(2)--正则表达式篇

    #if 0

    在C++中我们会遇到如何让一个函数能够接收任意的类型的参数的问题,在C语言中解
    决这个问题的方法是使用省略号作为函数的原型,但是省略号参数并不能指定参数具体的
    数量因此存在着一定的安全隐患,最近在研究Loki库的可继承性静态代码的时候发现在C++
    中还存在另外一种C++特有的方法,那就是采用模板构造函数和模板转换运算符。

    现在来看看具体的代码:

    #endif

    #include <iostream>
    #include <string>
    class any_t
    {
    public:
    any_t(){}
    // 可以从任意类型转换到any_t的转换函数
    template <class T>any_t(T const&){}
    // 可以从any_t转换到任意类型的转换函数
    template <class T>operator T(){return T();}
    };

    int main()
    {
    any_t a;// 定义一个任意的类型

    a = 5;// 整型向任意类型转换
    a = "pandaxcl";// C字符串类型向任意类型转换
    a = 5.15f;// 浮点类型向任意类型转换
    a = std::string("开心");// C++字符串类型向任意类型转换
    any_t b = a;// 任意类型之间的转换

    int i = a;// 任意类型向整型转换
    float f = a;// 任意类型向浮点型转换
    double d = a;// 任意类型向双精度型转换
    std::string s = a;// 任意类型向C++字符串类型转换
    return 0;
    }

    #if 0

    从上面的代码可以看出,确实实现了任意类型,但是这种任意类型并没有保存什么实
    质性的数据,仅仅只是实现了类型操作,这一点在Loki库的类型操作中可以用来实现任意
    类型的类型。这里仅仅只是给出了这种模板构造函数和模板转换函数的应用,真正的应用
    还主要在类型操作层面上,可以用来实现类型映射操作,同时还可以对任意类型进行一些
    额外的操作,这一点在C语言的省略号中是不可能做到的。

    好了,到此已经成功的实现了任意类型,具体的应用可以参见Loki库的继承性判断的
    静态函数中的省略号应用,可以用来完成类型映射中的“其他类型”的识别功能。具体的
    应用还是要看个人的发挥了,在此先写出来起个抛砖引玉的效果。

    特别说明一下,上面的代码在g++编译器和Borland C++ 5.5.1 for Win32编译器下编
    译通过。

    #endif
     

    发表于 @ 2006年07月06日 12:25:00|评论(loading...)|编辑

    新一篇: Lex和Yacc从入门到精通(3)--一个极其简单的lex和yacc程序 | 旧一篇: Lex和Yacc从入门到精通(2)--正则表达式篇

    评论

    #Inprise 发表于2006-07-07 09:40:00  IP: 219.140.164.*
    和boost::any原理近乎一样,其数据保存是通过一个指向非泛型基类的指针实现,具体指向从该基类派生的一个泛型类对象。
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © pandaxcl