关于template的问题

zxcdewq 2008-11-11 05:53:12
template <class _Ty = unsigned char, class _A = std::allocator <_Ty> >
class Test
{
...
_A m_allocator;

_A::size_type m_size; // vc 2005 提示错误.vc 6.0好像没事。
};

怎么解决?
...全文
64 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sayigood 2008-11-11
  • 打赏
  • 举报
回复
就是要明确指明这是一个类型,而不是一个成员变量。当然,_A中必须要定义了size_type这个类型
sayigood 2008-11-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 Vegertar 的回复:]
对于模板定义中的嵌套标识符,编译器默认为对象而非类型,所以若是类型的话要使用typename对编译器进行暗示,否则会被看成一个static数据成员。
[/Quote]
...否则会被看成一个static数据成员。
是静态成员吗?是普通的成员变量吧?
机智的呆呆 2008-11-11
  • 打赏
  • 举报
回复
模板的代码,楼主就不要用vc6.0了~~~~
Vegertar 2008-11-11
  • 打赏
  • 举报
回复
对于模板定义中的嵌套标识符,编译器默认为对象而非类型,所以若是类型的话要使用typename对编译器进行暗示,否则会被看成一个static数据成员。
hhyttppd 2008-11-11
  • 打赏
  • 举报
回复
前面加typename
hhyttppd 2008-11-11
  • 打赏
  • 举报
回复
typename _A::size_type m_size;

64,678

社区成员

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

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