首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“不存在的成员函数指定为朋友”-?

“不存在的成员函数指定为朋友”-?
EN

Stack Overflow用户
提问于 2010-06-19 13:45:53
回答 2查看 657关注 0票数 0

我正在尝试用Visual编译CSSTidy。

问题是它把

错误C2245:不存在的成员函数‘umap::擦除’指定为好友(成员函数签名不匹配任何重载)

指向

代码语言:javascript
复制
friend void umap<keyT,valT>::erase(const typename umap<keyT,valT>::iterator& it);

它是在umap类中声明的迭代器类中的声明。

有人能告诉我,我应该深入到哪里去找出真正的问题所在吗?AFAIK源代码在MinGW中编译。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-04 22:41:16

修复,向前声明“类迭代器;”在类umap的顶部,并将“类迭代器”的推进移到类umap的底部。原因是,MickySoft VS似乎有一个缺陷,导致它无法识别umap::擦除在umap::iterator的驱动之下声明的。

代码语言:javascript
复制
template <class keyT, class valT>
class umap 
{
    typedef map<keyT,valT> StoreT;
    typedef std::vector<typename StoreT::iterator> FifoT;
private:
    FifoT sortv;
    StoreT content;

public:

    class iterator;

    [...snip...]

  void erase(const typename umap<keyT,valT>::iterator& it)
  {
   content.erase(*it.pos);
   sortv.erase(it.pos);
  }

    [...snip...]

    // Iterator

    class iterator
    {
    [...snip...]
    }};
票数 2
EN

Stack Overflow用户

发布于 2010-06-19 13:49:17

源代码在MinGW中编译

呃..。所以?

在编译内部类时,编译器是否可以看到umap擦除成员函数?

Billy3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3075697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档