diff --git a/include/boost/iterator_adaptors.hpp b/include/boost/iterator_adaptors.hpp index 2185768..725bdf4 100644 --- a/include/boost/iterator_adaptors.hpp +++ b/include/boost/iterator_adaptors.hpp @@ -116,7 +116,6 @@ # include # include # include -# include // I was having some problems with VC6. I couldn't tell whether our hack for // stock GCC was causing problems so I needed an easy way to turn it on and @@ -554,7 +553,7 @@ namespace detail { // An associative list is a list of key-value pairs. The list is // built out of cons_type's and is terminated by end_of_list. -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || defined(__BORLANDC__) template struct find_param; @@ -563,8 +562,8 @@ namespace detail { typedef typename AssocList::first_type Head; typedef typename Head::first_type Key1; typedef typename Head::second_type Value; - typedef typename ct_if::value, - Value, + typedef typename if_true<(is_same::value)>::template + then::type >::type type; }; @@ -628,7 +627,8 @@ namespace detail { template struct make_arg { enum { is_named = is_named_parameter::value }; - typedef typename ct_if::type Make; + typedef typename if_true<(is_named)>::template + then::type Make; typedef typename Make::template select::type type; };