
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.
,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
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 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