c++模版问题,解决给100分

qianyong325 2005-04-04 03:16:56
在dev c++里写如下代码,通不过编译,一样的代码在vc6.0里可以用,以前一直用vc6.0,现在在学习模版6.0不支持偏特化,转到dev c++里,结果没有用偏特化就通不过编译了,那个老大给帮忙解决一下,先给20分,解决了再给100,此贴如果解决不了坚决不给分,宁肯扣信誉分了......
#include <iostream>

using namespace std;

template<typename T>
struct MyIter{
typedef T value_type;
T *ptr;
MyIter(T *p = 0):ptr(p){}
T & operator*() const {return *ptr;}
};

template<typename T>
struct iterator_traits{
typedef typename T::value_type value_type;
};

template<typename I>
typename iterator_traits<I>::value_type func(I ite){ return *ite;} //就是这行不对,说什么

// expected nested-name-specifier before "iterator_traits"
...全文
119 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
allen_zhaozhencn 2005-04-04
  • 打赏
  • 举报
回复
代码没有什么问题阿! 你去掉
#include <iostream>
using namespace std; 编译试下。
yjh1982 2005-04-04
  • 打赏
  • 举报
回复
好象跟标准库的重名了.改为
template<typename T>
struct aiterator_traits{
typedef typename T::value_type value_type;
};
template<typename I>
typename aiterator_traits<I>::value_type
func( I ite){ return *ite;}

就可
MagicCarmack 2005-04-04
  • 打赏
  • 举报
回复
template<typename I>
typename iterator_traits<I>::value_type func(I ite){ return *ite;} //就是这行不对,说什么

是不是这样:
template<typename I>
value_type typename iterator_traits<I>:: func(I ite){ return *ite;}

64,691

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧