Boost logo

Boost :

From: Arkadiy Vertleyb (vertleyb_at_[hidden])
Date: 2006-12-04 10:11:09


<Oliver.Kowalke_at_[hidden]> wrote

> I could solve the problem with gcc-4.1.2.
> In file expression_registry.hpp the tags
>
> struct key_index_tag;
> struct iterator_index_tag;
> struct cache_tag;
> struct cover_tag;
>
> Are forward declared. The class expression_registry_traverse_functor
> uses this tags as type switches for the function operator
>
> template<class R> void operator()(R& r, key_index_tag tag) const;
> template<class R> void operator()(R& r, iterator_index_tag tag) const;
> template<class R> void operator()(R& r, cache_tag tag) const;
> template<class R> void operator()(R& r, cover_tag tag) const;
>
> Because the tags are forward declared the compiler doen't know the
> complete type.
> I change your implemention with passing the tags as const&. Then the
> gcc-4.1.2 accepts now the code.
>
> template<class R> void operator()(R& r, key_index_tag const& tag) const;
> template<class R> void operator()(R& r, iterator_index_tag const& tag)
> const;
> template<class R> void operator()(R& r, cache_tag const& tag) const;
> template<class R> void operator()(R& r, cover_tag const&) const;

Thanks Oliver.

Actually this problem has already been solved some time ago (and exactly in
the way you suggest) in SourceForge CVS, see
http://rel-temp-lib.cvs.sourceforge.net/rel-temp-lib/, but I just forgot to
upload the corrected copy to the file vault. I'll do this as soon as I can.

Regards,
Arkadiy
 


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk