Boost logo

Boost :

From: Yitzhak Sapir (yitzhak.sapir_at_[hidden])
Date: 2004-08-17 10:19:56


> -----Original Message-----
> From: David Abrahams
>
> "Yitzhak Sapir" <yitzhak.sapir_at_[hidden]> writes:
>
> > Hello.
> >
> > I am in the process of upgrading code to use boost 1.31.0
> for MSVC6.5.
> > During this process I happened upon minimum_category.hpp which
> > contains "ETI workarounds". Now, it seems that the ETI workarounds
> > cause the compilation to fail, with the error message: constant
> > expression expected. Particularly, we are creating zip iterators to
> > two STLPort vectors. In debug iterator mode, I get the following
> > error. (minimum_category.hpp was modified a bit
>
> Post the error you get with an unmodified minimum_category.hpp,
> please. It's hard to analyze when the line numbers are wrong.
>

../../3rdParty\boost/iterator/detail/minimum_category.hpp(86) : error C2039: 'apply' : is not a member of '?$minimum_category_impl@$$00'
        ../../3rdParty\boost/iterator/detail/minimum_category.hpp(97) : see reference to class template instantiation 'boost::detail::minimum_category<struct boost::random_access_traversal_tag,struct boost::random_access_traversal_tag>' being compil
ed
        ../../3rdParty\boost/mpl/aux_/preprocessed/msvc60/apply.hpp(88) : see reference to class template instantiation 'boost::detail::minimum_category<struct boost::mpl::arg<1>,struct boost::mpl::arg<2> >::apply<struct boost::random_access_travers
al_tag,struct boost::random_access_traversal_tag>' being compiled
        ../../3rdParty\boost/mpl/aux_/preprocessed/msvc60/apply.hpp(101) : see reference to class template instantiation 'boost::mpl::aux::msvc_apply2<struct boost::detail::minimum_category<struct boost::mpl::arg<1>,struct boost::mpl::arg<2> > >::re
sult_<struct boost::random_access_traversal_tag,struct boost::random_access_traversal_tag>' being compiled
        ../../3rdParty\boost/iterator/zip_iterator.hpp(173) : see reference to class template instantiation 'boost::mpl::apply2<struct boost::detail::minimum_category<struct boost::mpl::arg<1>,struct boost::mpl::arg<2> >,struct boost::random_access_
traversal_tag,struct boost::random_access_traversal_tag>' being compiled
        ../../3rdParty\boost/mpl/aux_/preprocessed/msvc60/apply.hpp(9) : see reference to class template instantiation 'boost::detail::tuple_impl_specific::tuple_meta_accumulate_impl<struct boost::tuples::cons<struct boost::random_access_traversal_t
ag,struct boost::tuples::null_type>,struct boost::detail::minimum_category<struct boost::mpl::arg<1>,struct boost::mpl::arg<2> >,struct boost::random_access_traversal_tag>' being compiled
        ../../3rdParty\boost/mpl/apply_if.hpp(39) : see reference to class template instantiation 'boost::mpl::apply0<struct boost::detail::tuple_impl_specific::tuple_meta_accumulate_impl<struct boost::tuples::cons<struct boost::random_access_traver
sal_tag,struct boost::tuples::null_type>,struct boost::detail::minimum_category<struct boost::mpl::arg<1>,struct boost::mpl::arg<2> >,struct boost::random_access_traversal_tag> >' being compiled
        ../../3rdParty\boost/iterator/zip_iterator.hpp(198) : see reference to class template instantiation 'boost::mpl::apply_if<struct boost::mpl::or_<struct boost::is_same<struct boost::tuples::cons<struct boost::random_access_traversal_tag,struc
t boost::tuples::null_type>,struct boost::tuples::null_type>,struct boost::is_same<struct boost::tuples::cons<struct boost::random_access_traversal_tag,struct boost::tuples::null_type>,int>,struct boost::mpl::bool_<0>,struct boost::mpl::bool_<0>,str
uct boost::mpl::bool_<0> >,struct boost::mpl::identity<struct boost::random_access_traversal_tag>,struct boost::detail::tuple_impl_specific::tuple_meta_accumulate_impl<struct boost::tuples::cons<struct boost::random_access_traversal_tag,struct boost
::tuples::null_type>,struct boost::detail::minimum_category<struct boost::mpl::arg<1>,struct boost::mpl::arg<2> >,struct boost::random_access_traversal_tag> >' being compiled

> > but the problem is
> > in the instantiation of boost::is_same<T1 or T2,int>).
> ^^^^^^^^
>
> Huh? That's not valid regardless of any ETI workarounds.
>

That was my attempt to shorthand "either boost::is_same<T1,int> or boost::is_same<T2,int>"


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