На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+
  • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
  • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
  • Нарушение Правил может повлечь наказание со стороны модераторов.


Полезные ссылки:
user posted image Boost по-русски
user posted image Qt по-русски
Модераторы: archimed7592
  
> не видит итератор , g++ и stl
    ExpandedWrap disabled
      #include <map>
       
      namespace Nginx
      {
          template<typename T>
          class Cache
          {
          public:
              struct CacheInfo
              {
                  time_t      lastUpdate;
                  T           bannerCode;
                  CacheInfo():lastUpdate(0){}
                  CacheInfo(T code){...}
                  CacheInfo(time_t t, T code){...}
                  CacheInfo(const CacheInfo& val){...}
                  CacheInfo& operator=(const CacheInfo& val){...}
              };
       
              typedef std::pair<int, CacheInfo> CachePair;
              typedef std::map<int, CacheInfo> CacheMap;
       
          private:
              CacheMap        m_BannerMap;
              size_t          m_Limit;
              time_t          m_MaxTime;
       
          public:
              Cache(size_t limit = 100, time_t maxtime = 600)
                  : m_Limit(limit), m_MaxTime(maxtime)
              {}
              ~Cache(void)
              {}
       
              void SetSize(size_t limit)
              {
                  m_Limit = limit;
              }
       
              void SetTimeout(time_t maxtime)
              {
                  m_MaxTime = maxtime;
              }
       
              T Get(int bannerID)
              {
                  CacheMap::iterator it = m_BannerMap.find(bannerID); // error
                  return it->second.bannerCode;
              }
       
              bool Set(int bannerID, T bannerCode)
              {
                  CacheMap::iterator it = m_BannerMap.find(bannerID); // error
                  ///...
              }
          };
      }


    Данный код компилится на VC++ отлично, g++ выдает такие ошибки
    ExpandedWrap disabled
      /.../bannercache.h:...: error: expected `;' before ‘it’

    в чем может быть проблема?
      ExpandedWrap disabled
        typename CacheMap::iterator it = m_BannerMap.find(bannerID); // Ошибки не должно быть
        Спасибо, помогло
        1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0195 ]   [ 15 queries used ]   [ Generated: 17.05.24, 07:33 GMT ]