Boost logo

Boost Users :

From: Charles Brockman (cmbrockman_at_[hidden])
Date: 2008-02-18 17:30:03


Thorsten Ottosen wrote:
> There are some minor differences between std::map<K,T> and
> boost::ptr_map<K,T> and if this the types that gives you errors, it
> might be due to these differences.
> For example, boost::ptr_map<K,T>:::value_type is not a
> std::pair<const K,T>.
> There are also some difference in the way constness is handled, which
> might also be the source of your problem. Anyway, I would like to
> know more.

I constructed this short do-nothing program, zip_ptr_container_test.cpp.
//
#include <boost/tuple/tuple.hpp>
#include <boost/iterator/zip_iterator.hpp>
#include <map>
#include <boost/ptr_container/ptr_map.hpp>

using boost::zip_iterator;
using boost::tuple;
using boost::make_tuple;
using boost::ptr_map;
using std::map;

int main() {
  //typedef map<int, int> theMapType;
  typedef boost::ptr_map<int, int> theMapType;
  typedef zip_iterator
     <tuple<theMapType::iterator, theMapType::iterator> > zipIter;
  theMapType map1;
  theMapType map2;
  zipIter(make_tuple(map1.begin(), map2.begin()));
}
//

The program compiles without errors when the map typedef is enabled.
However, when the ptr_map typedef is active, I receive these errors:

c:\boost svn\trunk\boost\iterator\detail\minimum_category.hpp(72) : error
C2504: 'boost::detail::error_not_related_by_convertibility<T1,T2>' : base
class undefined with
[T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=boost::random_access_traversal_tag]
        c:\boost svn\trunk\boost\iterator\detail\minimum_category.hpp(91) :
see reference to class template instantiation
'boost::detail::minimum_category_impl<false,false>::apply<T1,T2>' being
compiled with
[T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=boost::random_access_traversal_tag]
        c:\boost svn\trunk\boost\mpl\aux_\has_type.hpp(20) : see reference
to class template instantiation 'boost::detail::minimum_category<T1,T2>'
being compiled with
[T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=boost::random_access_traversal_tag]
        c:\boost svn\trunk\boost\mpl\aux_\preprocessed\plain\quote.hpp(53) :
see reference to class template instantiation 'boost::mpl::aux::has_type<T>'
being compiled with
[T=boost::detail::minimum_category<boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,boost::random_access_traversal_tag>]
        c:\boost
svn\trunk\boost\mpl\aux_\preprocessed\plain\apply_wrap.hpp(49) : see
reference to class template instantiation
'boost::mpl::quote2<F,Tag>::apply<U1,U2>' being compiled with
[F=boost::detail::minimum_category, Tag=boost::mpl::void_,
U1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
U2=boost::random_access_traversal_tag]
        c:\boost svn\trunk\boost\mpl\aux_\preprocessed\plain\bind.hpp(207) :
see reference to class template instantiation
'boost::mpl::apply_wrap2<F,T1,T2>' being compiled with
[F=boost::mpl::quote2<boost::detail::minimum_category,boost::mpl::void_>,
T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=boost::random_access_traversal_tag]
        c:\boost
svn\trunk\boost\mpl\aux_\preprocessed\plain\apply_wrap.hpp(49) : see
reference to class template instantiation
'boost::mpl::bind2<F,T1,T2>::apply<U1,U2>' being compiled with
[F=boost::mpl::quote2<boost::detail::minimum_category,boost::mpl::void_>,
T1=boost::mpl::arg<1>, T2=boost::mpl::arg<2>,
U1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
U2=boost::random_access_traversal_tag]
        c:\boost svn\trunk\boost\mpl\aux_\preprocessed\plain\apply.hpp(63) :
see reference to class template instantiation
'boost::mpl::apply_wrap2<F,T1,T2>' being compiled with
[F=boost::mpl::protect<boost::mpl::bind2<boost::mpl::quote2<boost::detail::minimum_category,boost::mpl::void_>,boost::mpl::arg<1>,boost::mpl::arg<2>>>,
T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=boost::random_access_traversal_tag]
        c:\boost svn\trunk\boost\iterator\zip_iterator.hpp(159) : see
reference to class template instantiation 'boost::mpl::apply2<F,T1,T2>'
being compiled with
[F=boost::mpl::protect<boost::mpl::bind2<boost::mpl::quote2<boost::detail::minimum_category,boost::mpl::void_>,boost::mpl::arg<1>,boost::mpl::arg<2>>>,
T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=boost::random_access_traversal_tag]
        c:\boost svn\trunk\boost\mpl\eval_if.hpp(41) : see reference to
class template instantiation
'boost::detail::tuple_impl_specific::tuple_meta_accumulate_impl<Tuple,BinaryMetaFun,StartType>'
being compiled with
[Tuple=boost::tuples::cons<boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,boost::tuples::null_type>,
BinaryMetaFun=boost::detail::minimum_category<boost::mpl::_1,boost::mpl::_2>,
StartType=boost::random_access_traversal_tag]
        c:\boost svn\trunk\boost\iterator\zip_iterator.hpp(184) : see
reference to class template instantiation 'boost::mpl::eval_if<C,F1,F2>'
being compiled with
[C=boost::is_same<boost::tuples::cons<boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,boost::tuples::null_type>,boost::tuples::null_type>,
F1=boost::mpl::identity<boost::random_access_traversal_tag>,
F2=boost::detail::tuple_impl_specific::tuple_meta_accumulate_impl<boost::tuples::cons<boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,boost::tuples::null_type>,boost::detail::minimum_category<boost::mpl::_1,boost::mpl::_2>,boost::random_access_traversal_tag>]
        c:\boost svn\trunk\boost\iterator\zip_iterator.hpp(158) : see
reference to class template instantiation
'boost::detail::tuple_impl_specific::tuple_meta_accumulate<Tuple,BinaryMetaFun,StartType>'
being compiled with
[Tuple=boost::tuples::cons<boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,boost::tuples::null_type>,
BinaryMetaFun=boost::detail::minimum_category<boost::mpl::_1,boost::mpl::_2>,
StartType=boost::random_access_traversal_tag]
        c:\boost svn\trunk\boost\mpl\eval_if.hpp(41) : see reference to
class template instantiation
'boost::detail::tuple_impl_specific::tuple_meta_accumulate_impl<Tuple,BinaryMetaFun,StartType>'
being compiled with
[Tuple=boost::tuples::cons<boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,boost::tuples::cons<boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,boost::tuples::null_type>>,
BinaryMetaFun=boost::detail::minimum_category<boost::mpl::_1,boost::mpl::_2>,
StartType=boost::random_access_traversal_tag]
        c:\boost svn\trunk\boost\iterator\zip_iterator.hpp(184) : see
reference to class template instantiation 'boost::mpl::eval_if<C,F1,F2>'
being compiled with
[C=boost::is_same<boost::tuples::cons<boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,boost::tuples::cons<boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,boost::tuples::null_type>>,boost::tuples::null_type>,
F1=boost::mpl::identity<boost::random_access_traversal_tag>,
F2=boost::detail::tuple_impl_specific::tuple_meta_accumulate_impl<boost::tuples::cons<boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,boost::tuples::cons<boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,boost::tuples::null_type>>,boost::detail::minimum_category<boost::mpl::_1,boost::mpl::_2>,boost::random_access_traversal_tag>]
        c:\boost svn\trunk\boost\iterator\zip_iterator.hpp(367) : see
reference to class template instantiation
'boost::detail::tuple_impl_specific::tuple_meta_accumulate<Tuple,BinaryMetaFun,StartType>'
being compiled with
[Tuple=boost::tuples::cons<boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,boost::tuples::cons<boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,boost::tuples::null_type>>,
BinaryMetaFun=boost::detail::minimum_category<boost::mpl::_1,boost::mpl::_2>,
StartType=boost::random_access_traversal_tag]
        c:\boost svn\trunk\boost\iterator\zip_iterator.hpp(430) : see
reference to class template instantiation
'boost::detail::minimum_traversal_category_in_iterator_tuple<IteratorTuple>'
being compiled with
[IteratorTuple=boost::tuples::tuple<boost::ptr_map_iterator<std::_Tree<std::_Tmap_traits<int,void
*,std::less<int>,std::allocator<std::pair<const int,void
*>>,false>>::iterator,int,int *const
>,boost::ptr_map_iterator<std::_Tree<std::_Tmap_traits<int,void
*,std::less<int>,std::allocator<std::pair<const int,void
*>>,false>>::iterator,int,int *const >>]
        c:\boost svn\trunk\boost\iterator\zip_iterator.hpp(457) : see
reference to class template instantiation
'boost::detail::zip_iterator_base<IteratorTuple>' being compiled with
[IteratorTuple=boost::tuples::tuple<boost::ptr_map_iterator<std::_Tree<std::_Tmap_traits<int,void
*,std::less<int>,std::allocator<std::pair<const int,void
*>>,false>>::iterator,int,int *const
>,boost::ptr_map_iterator<std::_Tree<std::_Tmap_traits<int,void
*,std::less<int>,std::allocator<std::pair<const int,void
*>>,false>>::iterator,int,int *const >>]
        c:\documents and settings\chuck\my documents\visual studio
2005\projects\zip ptr container test\zip_ptr_container_test.cpp(19) : see
reference to class template instantiation
'boost::zip_iterator<IteratorTuple>' being compiled with
        [IteratorTuple=boost::tuples::tuple<boost::ptr_map_iterator<std::_Tree<std::_Tmap_traits<int,void
*,std::less<int>,std::allocator<std::pair<const int,void
*>>,false>>::iterator,int,int *const
>,boost::ptr_map_iterator<std::_Tree<std::_Tmap_traits<int,void
*,std::less<int>,std::allocator<std::pair<const int,void
*>>,false>>::iterator,int,int *const >>]
c:\boost svn\trunk\boost\iterator\detail\minimum_category.hpp(91) : error
C2039: 'type' : is not a member of
'boost::detail::minimum_category_impl<false,false>::apply<T1,T2>' with
[T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=boost::random_access_traversal_tag]
c:\boost svn\trunk\boost\iterator\detail\minimum_category.hpp(91) : error
C2146: syntax error : missing ';' before identifier 'type'
c:\boost svn\trunk\boost\iterator\detail\minimum_category.hpp(91) : error
C4430: missing type specifier - int assumed. Note: C++ does not support
default-int
c:\boost svn\trunk\boost\iterator\detail\minimum_category.hpp(91) : error
C2602: 'boost::detail::minimum_category<T1,T2>::type' is not a member of a
base class of 'boost::detail::minimum_category<T1,T2>' with
[T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=boost::random_access_traversal_tag]
        c:\boost svn\trunk\boost\iterator\detail\minimum_category.hpp(91) :
see declaration of 'boost::detail::minimum_category<T1,T2>::type' with
[T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=boost::random_access_traversal_tag]
c:\boost svn\trunk\boost\iterator\detail\minimum_category.hpp(91) : error
C2868: 'boost::detail::minimum_category<T1,T2>::type' : illegal syntax for
using-declaration; expected qualified-name with
[T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=boost::random_access_traversal_tag]
c:\boost svn\trunk\boost\iterator\detail\minimum_category.hpp(72) : error
C2504: 'boost::detail::error_not_related_by_convertibility<T1,T2>' : base
class undefined with
[T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=int]
        c:\boost svn\trunk\boost\iterator\detail\minimum_category.hpp(91) :
see reference to class template instantiation
'boost::detail::minimum_category_impl<false,false>::apply<T1,T2>' being
compiled with
[T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=int]
        c:\boost svn\trunk\boost\mpl\aux_\has_type.hpp(20) : see reference
to class template instantiation 'boost::detail::minimum_category<T1,T2>'
being compiled with
        [T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=int]
        c:\boost svn\trunk\boost\mpl\aux_\preprocessed\plain\quote.hpp(53) :
see reference to class template instantiation 'boost::mpl::aux::has_type<T>'
being compiled with
        [T=boost::detail::minimum_category<boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,int>]
        c:\boost
svn\trunk\boost\mpl\aux_\preprocessed\plain\apply_wrap.hpp(49) : see
reference to class template instantiation
'boost::mpl::quote2<F,Tag>::apply<U1,U2>' being compiled with
        [F=boost::detail::minimum_category, Tag=boost::mpl::void_,
U1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
U2=int]
        c:\boost svn\trunk\boost\mpl\aux_\preprocessed\plain\bind.hpp(207) :
see reference to class template instantiation
'boost::mpl::apply_wrap2<F,T1,T2>' being compiled with
        [F=boost::mpl::quote2<boost::detail::minimum_category,boost::mpl::void_>,
T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=int]
        c:\boost
svn\trunk\boost\mpl\aux_\preprocessed\plain\apply_wrap.hpp(49) : see
reference to class template instantiation
'boost::mpl::bind2<F,T1,T2>::apply<U1,U2>' being compiled with
        [F=boost::mpl::quote2<boost::detail::minimum_category,boost::mpl::void_>,
T1=boost::mpl::arg<1>, T2=boost::mpl::arg<2>,
U1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
U2=int]
        c:\boost svn\trunk\boost\mpl\aux_\preprocessed\plain\apply.hpp(63) :
see reference to class template instantiation
'boost::mpl::apply_wrap2<F,T1,T2>' being compiled with
        [F=boost::mpl::protect<boost::mpl::bind2<boost::mpl::quote2<boost::detail::minimum_category,boost::mpl::void_>,boost::mpl::arg<1>,boost::mpl::arg<2>>>,
T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=int]
        c:\boost svn\trunk\boost\iterator\zip_iterator.hpp(159) : see
reference to class template instantiation 'boost::mpl::apply2<F,T1,T2>'
being compiled with
        [F=boost::mpl::protect<boost::mpl::bind2<boost::mpl::quote2<boost::detail::minimum_category,boost::mpl::void_>,boost::mpl::arg<1>,boost::mpl::arg<2>>>,
T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=int]
c:\boost svn\trunk\boost\iterator\detail\minimum_category.hpp(91) : error
C2039: 'type' : is not a member of
'boost::detail::minimum_category_impl<false,false>::apply<T1,T2>' with
        [T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=int]
c:\boost svn\trunk\boost\iterator\detail\minimum_category.hpp(91) : error
C2146: syntax error : missing ';' before identifier 'type'
c:\boost svn\trunk\boost\iterator\detail\minimum_category.hpp(91) : error
C4430: missing type specifier - int assumed. Note: C++ does not support
default-int
c:\boost svn\trunk\boost\iterator\detail\minimum_category.hpp(91) : error
C2602: 'boost::detail::minimum_category<T1,T2>::type' is not a member of a
base class of 'boost::detail::minimum_category<T1,T2>' with
        [T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=int]
        c:\boost svn\trunk\boost\iterator\detail\minimum_category.hpp(91) :
see declaration of 'boost::detail::minimum_category<T1,T2>::type' with
        [T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=int]
c:\boost svn\trunk\boost\iterator\detail\minimum_category.hpp(91) : error
C2868: 'boost::detail::minimum_category<T1,T2>::type' : illegal syntax for
using-declaration; expected qualified-name with
        [T1=boost::detail::iterator_category_with_traversal<std::input_iterator_tag,boost::bidirectional_traversal_tag>,
T2=int]
c:\boost svn\trunk\boost\mpl\eval_if.hpp(41) : error C2516:
'boost::mpl::if_<T1,T2,T3>::type' : is not a legal base class with
        [T1=boost::is_convertible<int,std::output_iterator_tag>,
T2=boost::mpl::identity<boost::incrementable_traversal_tag>, T3=void]
        c:\boost svn\trunk\boost\mpl\if.hpp(70) : see declaration of
'boost::mpl::if_<T1,T2,T3>::type' with
        [T1=boost::is_convertible<int,std::output_iterator_tag>,
T2=boost::mpl::identity<boost::incrementable_traversal_tag>, T3=void]
        c:\boost svn\trunk\boost\mpl\eval_if.hpp(41) : see reference to
class template instantiation 'boost::mpl::eval_if<C,F1,F2>' being compiled
with
        [C=boost::is_convertible<int,std::output_iterator_tag>,
F1=boost::mpl::identity<boost::incrementable_traversal_tag>, F2=void]
        c:\boost svn\trunk\boost\mpl\eval_if.hpp(41) : see reference to
class template instantiation 'boost::mpl::eval_if<C,F1,F2>' being compiled
with
        [C=boost::is_convertible<int,std::input_iterator_tag>,F1=boost::mpl::identity<boost::single_pass_traversal_tag>,
F2=boost::mpl::eval_if<boost::is_convertible<int,std::output_iterator_tag>,boost::mpl::identity<boost::incrementable_traversal_tag>,void>]
        c:\boost svn\trunk\boost\mpl\eval_if.hpp(41) : see reference to
class template instantiation 'boost::mpl::eval_if<C,F1,F2>' being compiled
with
        [C=boost::is_convertible<int,std::forward_iterator_tag>,
F1=boost::mpl::identity<boost::forward_traversal_tag>,
F2=boost::mpl::eval_if<boost::is_convertible<int,std::input_iterator_tag>,boost::mpl::identity<boost::single_pass_traversal_tag>,boost::mpl::eval_if<boost::is_convertible<int,std::output_iterator_tag>,boost::mpl::identity<boost::incrementable_traversal_tag>,void>>]
        c:\boost svn\trunk\boost\mpl\eval_if.hpp(41) : see reference to
class template instantiation 'boost::mpl::eval_if<C,F1,F2>' being compiled
with
        [C=boost::is_convertible<int,std::bidirectional_iterator_tag>,
F1=boost::mpl::identity<boost::bidirectional_traversal_tag>,
F2=boost::mpl::eval_if<boost::is_convertible<int,std::forward_iterator_tag>,boost::mpl::identity<boost::forward_traversal_tag>,boost::mpl::eval_if<boost::is_convertible<int,std::input_iterator_tag>,boost::mpl::identity<boost::single_pass_traversal_tag>,boost::mpl::eval_if<boost::is_convertible<int,std::output_iterator_tag>,boost::mpl::identity<boost::incrementable_traversal_tag>,void>>>]
        c:\boost svn\trunk\boost\iterator\iterator_categories.hpp(98) : see
reference to class template instantiation 'boost::mpl::eval_if<C,F1,F2>'
being compiled with
        [C=boost::is_convertible<int,std::random_access_iterator_tag>,
F1=boost::mpl::identity<boost::random_access_traversal_tag>,
F2=boost::mpl::eval_if<boost::is_convertible<int,std::bidirectional_iterator_tag>,boost::mpl::identity<boost::bidirectional_traversal_tag>,boost::mpl::eval_if<boost::is_convertible<int,std::forward_iterator_tag>,boost::mpl::identity<boost::forward_traversal_tag>,boost::mpl::eval_if<boost::is_convertible<int,std::input_iterator_tag>,boost::mpl::identity<boost::single_pass_traversal_tag>,boost::mpl::eval_if<boost::is_convertible<int,std::output_iterator_tag>,boost::mpl::identity<boost::incrementable_traversal_tag>,void>>>>]
        c:\boost svn\trunk\boost\mpl\eval_if.hpp(41) : see reference to
class template instantiation 'boost::detail::old_category_to_traversal<Cat>'
being compiled with
        [Cat=int]
        c:\boost svn\trunk\boost\iterator\iterator_categories.hpp(155) : see
reference to class template instantiation 'boost::mpl::eval_if<C,F1,F2>'
being compiled with
        [C=boost::is_convertible<int,boost::incrementable_traversal_tag>,
F1=boost::mpl::identity<int>,
F2=boost::detail::old_category_to_traversal<int>]
        c:\boost
svn\trunk\boost\iterator\detail\facade_iterator_category.hpp(176) : see
reference to class template instantiation
'boost::iterator_category_to_traversal<Cat>' being compiled with
        [Cat=int]
        c:\boost svn\trunk\boost\mpl\eval_if.hpp(41) : see reference to
class template instantiation
'boost::detail::facade_iterator_category_impl<Traversal,ValueParam,Reference>'
being compiled with
        [Traversal=int,
ValueParam=boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::null_type>>,
Reference=boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::null_type>>]
        c:\boost
svn\trunk\boost\iterator\detail\facade_iterator_category.hpp(193) : see
reference to class template instantiation 'boost::mpl::eval_if<C,F1,F2>'
being compiled with
        [C=boost::detail::is_iterator_category<int>,
F1=boost::mpl::identity<int>,
F2=boost::detail::facade_iterator_category_impl<int,boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const
>,boost::tuples::null_type>>,boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::null_type>>>]
        c:\boost svn\trunk\boost\iterator\iterator_facade.hpp(104) : see
reference to class template instantiation
'boost::detail::facade_iterator_category<CategoryOrTraversal,ValueParam,Reference>'
being compiled with
        [CategoryOrTraversal=int,
ValueParam=boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::null_type>>,
Reference=boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::null_type>>]
        c:\boost svn\trunk\boost\iterator\iterator_facade.hpp(627) : see
reference to class template instantiation
'boost::detail::iterator_facade_types<ValueParam,CategoryOrTraversal,Reference,Difference>'
being compiled with
[ValueParam=boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::null_type>>, CategoryOrTraversal=int,
Reference=boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::null_type>>, Difference=__w64 int]
        c:\boost svn\trunk\boost\iterator\zip_iterator.hpp(458) : see
reference to class template instantiation
'boost::iterator_facade<Derived,Value,CategoryOrTraversal,Reference,Difference>'
being compiled with
[Derived=boost::zip_iterator<boost::tuples::tuple<boost::ptr_map_iterator<std::_Tree<std::_Tmap_traits<int,void
*,std::less<int>,std::allocator<std::pair<const int,void
*>>,false>>::iterator,int,int *const
>,boost::ptr_map_iterator<std::_Tree<std::_Tmap_traits<int,void
*,std::less<int>,std::allocator<std::pair<const int,void
*>>,false>>::iterator,int,int *const >>>,
Value=boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::null_type>>, CategoryOrTraversal=int,
Reference=boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::cons<boost::ptr_container_detail::ref_pair<int,int
*const >,boost::tuples::null_type>>, Difference=__w64 int]
c:\boost svn\trunk\boost\iterator\detail\facade_iterator_category.hpp(176) :
error C2039: 'type' : is not a member of
'boost::iterator_category_to_traversal<Cat>' with
        [Cat=int]
c:\boost svn\trunk\boost\iterator\detail\facade_iterator_category.hpp(177) :
error C2146: syntax error : missing ',' before identifier 'type'
c:\boost svn\trunk\boost\iterator\detail\facade_iterator_category.hpp(177) :
error C2065: 'type' : undeclared identifier
c:\boost svn\trunk\boost\iterator\detail\facade_iterator_category.hpp(180) :
error C3203: 'is_same' : unspecialized class template can't be used as a
template argument for template parameter 'T1', expected a real type
c:\boost svn\trunk\boost\iterator\detail\facade_iterator_category.hpp(180) :
error C2955: 'boost::is_same' : use of class template requires template
argument list
        c:\boost svn\trunk\boost\type_traits\is_same.hpp(37) : see
declaration of 'boost::is_same'
c:\boost svn\trunk\boost\iterator\detail\facade_iterator_category.hpp(180) :
error C2955: 'boost::mpl::if_' : use of class template requires template
argument list
        c:\boost svn\trunk\boost\mpl\if.hpp(56) : see declaration of
'boost::mpl::if_'

Are these problems correctable?

-- 
Charles Brockman

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net