CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

兑现诺言, yjh1982(血精灵)进来拿分

楼主qianyong325(帝王企鹅)2005-04-04 17:57:45 在 C/C++ / C++ 语言 提问

感谢你帮我解决了问题,开这个给你100分,另外,又有问题要问,解决再给100,  
   
  #include   <cstdlib>  
  #include   <iostream>  
   
  using   namespace   std;  
   
  struct   P_tag{};  
  struct   R_tag{};          
   
   
  template<typename   T>  
  struct   aiterator_traits{  
    typedef   typename   T::value_type   value_type;  
    typedef   typename   T::avalue_tag   avalue_tag;  
  };  
   
  template<typename   L>  
  struct   aiterator_traits<L*>{  
                typedef   L   value_type;  
                typedef     P_tag   avalue_tag   ;  
  };  
   
  template<>  
  struct   aiterator_traits<int>{  
                typedef   int   value_type;  
                typedef   R_tag   avalue_tag   ;  
  };  
   
    template<class   L>  
    typename   aiterator_traits<L>::value_type  
    func_p(L   ite,P_tag){   return   *ite;}  
     
    template<class   L>  
    typename   aiterator_traits<L>::value_type  
    func_p(L   ite,R_tag){   return   ite;}  
     
    template<class   L>  
    typename   aiterator_traits<L>::value_type  
    func(L   ite){   return   func_p(ite,aiterator_traits<L>::avalue_tag());}  
   
   
   
  int   main(int   argc,   char   *argv[])  
  {  
   
              int   b   =   11;  
              cout<<func(b)<<endl;//在这提示错误  
   
           
          cout<<"aaa"<<endl;  
          system("PAUSE");  
          return   EXIT_SUCCESS;  
  }  
   
  上面的代码是想看看traits怎么用,结果编译不通过,错误是在aiterator_traits<L>::avalue_tag()解析不出类型,我觉得应该能解析出来是R_tag的阿,不管是谁解决了都给100,谢谢各位大侠, 问题点数:100、回复次数:12Top

1 楼zengwujun(月之海 为linux入门奋斗100天)回复于 2005-04-04 18:36:29 得分 0

template<typename   L>  
  struct   aiterator_traits<L*>{//L是一个未确定的类型,这里能用L进行特化吗?  
  typedef   L   value_type;  
  typedef     P_tag   avalue_tag   ;  
  };Top

2 楼steedhorse(晨星)回复于 2005-04-04 18:57:36 得分 0

以后别再单独开帖给技术分,C/C++版不允许的,这次就算了,下不为例。Top

3 楼yangkun110(狼的传人)回复于 2005-04-04 19:02:03 得分 0

回复人:   steedhorse(晨星)   (   )   信誉:119     2005-04-04   18:57:00     得分:   0      
     
     
        以后别再单独开帖给技术分,C/C++版不允许的,这次就算了,下不为例。  
       
     
  Top

4 楼FireEmissary(咒火使者)回复于 2005-04-04 19:27:21 得分 100

 
    template<class   L>  
    typename   aiterator_traits<L>::value_type  
    func(L   ite){   return   func_p(ite,aiterator_traits<L>::avalue_tag());}  
   
   
  改为  
    template<class   L>  
    typename   aiterator_traits<L>::value_type  
    func(L   ite){   return   func_p(ite,typename   aiterator_traits<L>::avalue_tag());}  
   
   
  分全给我吧.血精灵同志一定不会介意的:)  
   
  Top

5 楼qianyong325(帝王企鹅)回复于 2005-04-04 20:12:32 得分 0

to:fireEmissary(咒火使者)  
   
  谢谢,不过这贴说好了是给血精灵的,总不能言而无信,小弟港开始弄泛形编程,感觉原来真是好玩,以后还有很多问题要问的,另外,这个steedhorse(晨星)   说不让开贴给分,你回答的是正确地,怎么给你分啊?Top

6 楼qianyong325(帝王企鹅)回复于 2005-04-04 20:15:37 得分 0

to:zengwujun(月之海)  
  可以这样特化的,stl里有好多类似这样的东西Top

7 楼FireEmissary(咒火使者)回复于 2005-04-04 20:57:52 得分 0

既然我答对了,给分就是了-_-#Top

8 楼qianyong325(帝王企鹅)回复于 2005-04-04 23:12:48 得分 0

等明天早上血精灵不来就揭帖Top

9 楼lw1a2(一刀 现在改六点下班了:()回复于 2005-04-05 08:33:44 得分 0

没来~~Top

10 楼zengwujun(月之海 为linux入门奋斗100天)回复于 2005-04-05 08:38:52 得分 0

template<typename   L>  
  struct   aiterator_traits<L*>{  
                typedef   L   value_type;  
                typedef     P_tag   avalue_tag   ;  
  };  
  这一段在vc下面通不过,而把这注释掉之后  
  func(L   ite){   return   func_p(ite,aiterator_traits<L>::avalue_tag());}  
  不加typename没有问题Top

11 楼qianyong325(帝王企鹅)回复于 2005-04-05 08:51:25 得分 0

to:   zengwujun(月之海)    
  注释掉就没有意义了,我就是要看看模版的推演过程,vc6.0下面偏特化已经不支持了,我用的是dev   C++写的代码,答案正如FireEmissary(咒火使者)说的,少了一个typename,主要是刚开始用dev   c++,对这个编辑器不敏感,写东西老是丢三落四,谁能给推荐一款能和vc6.0   +   va10+wintab匹敌的开发环境阿?最好能多支持一点标准,另外,如果9:30血精灵还不来分就都给FireEmissary(咒火使者)了,毕竟只有他回答对了问题Top

12 楼beyondtkl(大龙驹<*好久没来了,兄弟们好吧。*>)回复于 2005-04-05 09:30:26 得分 0

呵呵。Top

相关问题

  • 兑现诺言,给分1
  • 兑现诺言,给分2
  • 兑现诺言,散分200。先100,下帖再100
  • 对现诺言
  • 桌面精灵
  • powerbu请进,为了诺言
  • 实现诺言:Bottol 进来拿分!
  • 实现我的诺言:把分散尽!!
  • 当有很多精灵时...
  • 关于还原精灵????

关键词

  • c++
  • c/c++
  • tag
  • 精灵
  • template
  • 解决
  • aiterator
  • traits
  • avalue
  • typename

得分解答快速导航

  • 帖主:qianyong325
  • FireEmissary

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo