$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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