On Wed, Aug 25, 2010 at 1:53 PM, Oleg Goldshmidt <p...@goldshmidt.org> wrote:

> 2010/8/25 Erez D <erez0...@gmail.com>:
> >
> >
> > On Wed, Aug 25, 2010 at 12:08 PM, Elazar Leibovich <elaz...@gmail.com>
> > wrote:
> >>
> >> template <class a, class b>
> >>
> >> class c
> >>
> >> {
> >>
> >>       private:
> >>
> >>               b defaultVal;
> >>
> >>       public:
> >>
> >>               std::map<a,b> mymap;
> >>
> >>
> >> const b &func(a idx)
> >>
> >>              {
> >>
> >>                  typename std::map<a,b>::iterator it(mymap.find(idx));
> >>
> >>                      if (it!=mymap.end())
> >>
> >>                              return it->second;
> >>
> >>                      else
> >>
> >>                              return defaultVal;
> >>
> >>              }
> >>
> >> };
> >>
> >> The compiler is not sure std::map<a,b>::iterator is a typename or a
> value.
> >
> > how do i sove that ? can you give a solution ?
>
>
oops, you are correct.


> I think you missed the fact that Elazar gave a solution - the above is
> NOT identical to what you sent:
>
> 1. uses the proper argument (idx, not a) to find()
>
sure, this was a typo

> 2. adds typename
>
yep, this fixed it

thanks,
erez.

>
> --
> Oleg Goldshmidt | p...@goldshmidt.org
>
_______________________________________________
Linux-il mailing list
Linux-il@cs.huji.ac.il
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il

Reply via email to