Boost logo

Boost :

From: Russell Hind (rh_gmane_at_[hidden])
Date: 2005-05-11 03:04:27


Pavol Droba wrote:
>
> [snip]
>
> As far as I can tell, it seems, that bcc does not handle safe-bool idiom well. Problem leads to
> boost::iterator_range (currently present in Boost.Range)
>

Here is a modification of the patch. It doesn't fix the operator!
errors (David Abrahams pointed out a possible solution for this, can you
add this)?

These are the only errors I'm getting now in the test log (see attached).

Will this be applied?

Cheers

Russell

Index: boost/algorithm/string/compare.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/algorithm/string/compare.hpp,v
retrieving revision 1.2
diff -u -r1.2 compare.hpp
--- boost/algorithm/string/compare.hpp 15 Jul 2004 21:48:25 -0000 1.2
+++ boost/algorithm/string/compare.hpp 11 May 2005 07:34:24 -0000
@@ -14,7 +14,7 @@
 #include <locale>
 
 /*! \file
- Defines element comparison predicates. Many algorithms in this library can
+ Defines element comparison predicates. Many algorithms in this library can
     take an additional argument with a predicate used to compare elements.
     This makes it possible, for instance, to have case insensitive versions
     of the algorithms.
@@ -22,7 +22,7 @@
 
 namespace boost {
     namespace algorithm {
-
+
         // is_equal functor -----------------------------------------------//
 
         //! is_equal functor
@@ -54,24 +54,28 @@
             /*!
                 \param Loc locales used for comparison
             */
- is_iequal( const std::locale& Loc=std::locale() ) :
+ is_iequal( const std::locale& Loc=std::locale() ) :
                 m_Loc( Loc ) {}
 
- //! Function operator
+ //! Function operator
             /*!
                 Compare two operands. Case is ignored.
             */
             template< typename T1, typename T2 >
                 bool operator ()( const T1& Arg1, const T2& Arg2 ) const
             {
- return std::toupper(Arg1,m_Loc)==std::toupper(Arg2,m_Loc);
+ #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
+ return std::toupper(Arg1)==std::toupper(Arg2);
+ #else
+ return std::toupper(Arg1,m_Loc)==std::toupper(Arg2,m_Loc);
+ #endif
             }
 
         private:
             std::locale m_Loc;
         };
 
- } // namespace algorithm
+ } // namespace algorithm
 
     // pull names to the boost namespace
     using algorithm::is_equal;
Index: boost/algorithm/string/config.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/algorithm/string/config.hpp,v
retrieving revision 1.4
diff -u -r1.4 config.hpp
--- boost/algorithm/string/config.hpp 16 Jul 2004 13:57:40 -0000 1.4
+++ boost/algorithm/string/config.hpp 11 May 2005 07:26:04 -0000
@@ -17,11 +17,7 @@
 # error "macro already defined!"
 #endif
 
-#ifdef __BORLANDC__
-#define BOOST_STRING_TYPENAME
-#else
 #define BOOST_STRING_TYPENAME BOOST_DEDUCED_TYPENAME
-#endif
 
 // Metrowerks workaround
 #if BOOST_WORKAROUND(__MWERKS__, <= 0x3003) // 8.x
Index: boost/algorithm/string/sequence_traits.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/algorithm/string/sequence_traits.hpp,v
retrieving revision 1.7
diff -u -r1.7 sequence_traits.hpp
--- boost/algorithm/string/sequence_traits.hpp 15 Jul 2004 21:48:25 -0000 1.7
+++ boost/algorithm/string/sequence_traits.hpp 11 May 2005 07:24:39 -0000
@@ -24,7 +24,7 @@
 
     Due to a language restriction, it is not currently possible to define specializations for
     stl containers without including the corresponding header. To decrease the overhead
- needed by this inclusion, user can selectively include a specialization
+ needed by this inclusion, user can selectively include a specialization
     header for a specific container. They are located in boost/algorithm/string/stl
     directory. Alternatively she can include boost/algorithm/string/std_collection_traits.hpp
     header which contains specializations for all stl containers.
@@ -39,7 +39,7 @@
 
         //! Native replace tester
         /*!
- Declare an override of this tester function with return
+ Declare an override of this tester function with return
             type boost::string_algo::yes_type for a sequence with this property.
 
             \return yes_type if the container has basic_string like native replace
@@ -49,31 +49,31 @@
 
         //! Stable iterators tester
         /*!
- Declare an override of this tester function with return
+ Declare an override of this tester function with return
             type boost::string_algo::yes_type for a sequence with this property.
 
             \return yes_type if the sequence's insert/replace/erase methods do not invalidate
             existing iterators.
         */
- no_type has_stable_iterators_tester(...);
+ no_type has_stable_iterators_tester(...);
 
         //! const time insert tester
         /*!
- Declare an override of this tester function with return
+ Declare an override of this tester function with return
             type boost::string_algo::yes_type for a sequence with this property.
 
             \return yes_type if the sequence's insert method is working in constant time
         */
- no_type has_const_time_insert_tester(...);
+ no_type has_const_time_insert_tester(...);
 
         //! const time erase tester
         /*!
- Declare an override of this tester function with return
+ Declare an override of this tester function with return
             type boost::string_algo::yes_type for a sequence with this property.
 
             \return yes_type if the sequence's erase method is working in constant time
         */
- no_type has_const_time_erase_tester(...);
+ no_type has_const_time_erase_tester(...);
 
 #endif //BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
@@ -89,7 +89,7 @@
         private:
             static T* t;
         public:
- BOOST_STATIC_CONSTANT(bool, value=(
+ BOOST_STATIC_CONSTANT(bool, value=(
                 sizeof(has_native_replace_tester(t))==sizeof(yes_type) ) );
 #else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         public:
@@ -99,9 +99,9 @@
             BOOST_STATIC_CONSTANT(bool, value=false);
 # endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
 #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
 
- typedef mpl::bool_<value> type;
+
+ typedef mpl::bool_<has_native_replace<T>::value> type;
         };
 
 
@@ -117,7 +117,7 @@
         private:
             static T* t;
         public:
- BOOST_STATIC_CONSTANT(bool, value=(
+ BOOST_STATIC_CONSTANT(bool, value=(
                 sizeof(has_stable_iterators_tester(t))==sizeof(yes_type) ) );
 #else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         public:
@@ -128,13 +128,13 @@
 # endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
 #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
- typedef mpl::bool_<value> type;
+ typedef mpl::bool_<has_stable_iterators<T>::value> type;
         };
 
 
         //! Const time insert trait
         /*!
- This trait specifies that the sequence's insert method has
+ This trait specifies that the sequence's insert method has
             constant time complexity.
         */
         template< typename T >
@@ -144,7 +144,7 @@
         private:
             static T* t;
         public:
- BOOST_STATIC_CONSTANT(bool, value=(
+ BOOST_STATIC_CONSTANT(bool, value=(
                 sizeof(has_const_time_insert_tester(t))==sizeof(yes_type) ) );
 #else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         public:
@@ -155,13 +155,13 @@
 # endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
 #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
- typedef mpl::bool_<value> type;
+ typedef mpl::bool_<has_const_time_insert<T>::value> type;
         };
 
 
         //! Const time erase trait
         /*!
- This trait specifies that the sequence's erase method has
+ This trait specifies that the sequence's erase method has
             constant time complexity.
         */
         template< typename T >
@@ -171,7 +171,7 @@
         private:
             static T* t;
         public:
- BOOST_STATIC_CONSTANT(bool, value=(
+ BOOST_STATIC_CONSTANT(bool, value=(
                 sizeof(has_const_time_erase_tester(t))==sizeof(yes_type) ) );
 #else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         public:
@@ -182,7 +182,7 @@
 # endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
 #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
- typedef mpl::bool_<value> type;
+ typedef mpl::bool_<has_const_time_erase<T>::value> type;
         };
 
     } // namespace algorithm
Index: boost/algorithm/string/detail/case_conv.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/algorithm/string/detail/case_conv.hpp,v
retrieving revision 1.1
diff -u -r1.1 case_conv.hpp
--- boost/algorithm/string/detail/case_conv.hpp 4 Mar 2004 22:11:41 -0000 1.1
+++ boost/algorithm/string/detail/case_conv.hpp 11 May 2005 07:36:36 -0000
@@ -20,7 +20,7 @@
 
 // case conversion functors -----------------------------------------------//
 
- // a tolower functor
+ // a tolower functor
             template<typename CharT>
             struct to_lowerF : public std::unary_function<CharT, CharT>
             {
@@ -30,13 +30,17 @@
                 // Operation
                 CharT operator ()( CharT Ch ) const
                 {
- return std::tolower( Ch, m_Loc );
+ #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
+ return std::tolower( Ch);
+ #else
+ return std::tolower( Ch, m_Loc );
+ #endif
                 }
             private:
                 const std::locale& m_Loc;
             };
 
- // a toupper functor
+ // a toupper functor
             template<typename CharT>
             struct to_upperF : public std::unary_function<CharT, CharT>
             {
@@ -46,7 +50,11 @@
                 // Operation
                 CharT operator ()( CharT Ch ) const
                 {
- return std::toupper( Ch, m_Loc );
+ #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
+ return std::toupper( Ch);
+ #else
+ return std::toupper( Ch, m_Loc );
+ #endif
                 }
             private:
                 const std::locale& m_Loc;
Index: boost/algorithm/string/detail/classification.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/algorithm/string/detail/classification.hpp,v
retrieving revision 1.6
diff -u -r1.6 classification.hpp
--- boost/algorithm/string/detail/classification.hpp 12 Apr 2005 16:50:42 -0000 1.6
+++ boost/algorithm/string/detail/classification.hpp 11 May 2005 08:03:31 -0000
@@ -25,9 +25,9 @@
 namespace boost {
     namespace algorithm {
         namespace detail {
-
+
 // classification functors -----------------------------------------------//
-
+
             // is_classified functor
             struct is_classifiedF :
                 public predicate_facade<is_classifiedF>
@@ -35,7 +35,7 @@
                 // Boost.Lambda support
                 template <class Args> struct sig { typedef bool type; };
 
- // Constructor from a locale
+ // Constructor from a locale
                 is_classifiedF(std::ctype_base::mask Type, std::locale const & Loc = std::locale()) :
                     m_Type(Type), m_Locale(Loc) {}
 
@@ -46,13 +46,21 @@
                     return std::use_facet< std::ctype<CharT> >(m_Locale).is( m_Type, Ch );
                 }
 
+ #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
+ template<>
+ bool operator()( char const Ch ) const
+ {
+ return std::use_facet< std::ctype<char> >(m_Locale).is( m_Type, Ch );
+ }
+ #endif
+
             private:
                 const std::ctype_base::mask m_Type;
                 const std::locale m_Locale;
             };
 
- // is_any_of functor
- /*
+ // is_any_of functor
+ /*
                 returns true if the value is from the specified set
             */
             template<typename CharT>
@@ -62,26 +70,26 @@
                 // Boost.Lambda support
                 template <class Args> struct sig { typedef bool type; };
 
- // Constructor
+ // Constructor
                 template<typename RangeT>
- is_any_ofF( const RangeT& Range ) :
+ is_any_ofF( const RangeT& Range ) :
                     m_Set( begin(Range), end(Range) ) {}
-
+
                 // Operation
                 template<typename Char2T>
                 bool operator()( Char2T Ch ) const
                 {
                     return m_Set.find(Ch)!=m_Set.end();
                 }
-
+
             private:
                 // set cannot operate on const value-type
                 typedef typename remove_const<CharT>::type set_value_type;
- std::set<set_value_type> m_Set;
+ std::set<set_value_type> m_Set;
             };
 
- // is_from_range functor
- /*
+ // is_from_range functor
+ /*
                 returns true if the value is from the specified range.
                 (i.e. x>=From && x>=To)
             */
@@ -92,16 +100,16 @@
                 // Boost.Lambda support
                 template <class Args> struct sig { typedef bool type; };
 
- // Constructor
+ // Constructor
                 is_from_rangeF( CharT From, CharT To ) : m_From(From), m_To(To) {}
-
+
                 // Operation
                 template<typename Char2T>
                 bool operator()( Char2T Ch ) const
                 {
- return ( m_From <= Ch ) && ( Ch <= m_To );
+ return ( m_From <= Ch ) && ( Ch <= m_To );
                 }
-
+
             private:
                 CharT m_From;
                 CharT m_To;
@@ -123,11 +131,11 @@
 
                 // Operation
                 template<typename CharT>
- bool operator()( CharT Ch ) const
+ bool operator()( CharT Ch ) const
                 {
                     return m_Pred1(Ch) && m_Pred2(Ch);
                 }
-
+
             private:
                 Pred1T m_Pred1;
                 Pred2T m_Pred2;
@@ -148,11 +156,11 @@
 
                 // Operation
                 template<typename CharT>
- bool operator()( CharT Ch ) const
+ bool operator()( CharT Ch ) const
                 {
                     return m_Pred1(Ch) || m_Pred2(Ch);
                 }
-
+
             private:
                 Pred1T m_Pred1;
                 Pred2T m_Pred2;
@@ -172,11 +180,11 @@
 
                 // Operation
                 template<typename CharT>
- bool operator()( CharT Ch ) const
+ bool operator()( CharT Ch ) const
                 {
                     return !m_Pred(Ch);
                 }
-
+
             private:
                 PredT m_Pred;
             };
Index: boost/algorithm/string/std/list_traits.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/algorithm/string/std/list_traits.hpp,v
retrieving revision 1.5
diff -u -r1.5 list_traits.hpp
--- boost/algorithm/string/std/list_traits.hpp 14 Jul 2004 21:21:54 -0000 1.5
+++ boost/algorithm/string/std/list_traits.hpp 11 May 2005 07:29:22 -0000
@@ -33,9 +33,9 @@
         template<typename T, typename AllocT>
         yes_type has_const_time_erase_tester( const ::std::list<T,AllocT>* );
 
-
+
 #else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
+
         // stable iterators trait
         template<typename T, typename AllocT>
         class has_stable_iterators< ::std::list<T,AllocT> >
@@ -46,7 +46,7 @@
 #else
             BOOST_STATIC_CONSTANT(bool, value=true);
 #endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
- typedef mpl::bool_<value> type;
+ typedef mpl::bool_<has_stable_iterators<T>::value> type;
         };
 
         // const time insert trait
@@ -59,7 +59,7 @@
 #else
             BOOST_STATIC_CONSTANT(bool, value=true);
 #endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
- typedef mpl::bool_<value> type;
+ typedef mpl::bool_<has_const_time_insert<T>::value> type;
         };
 
         // const time erase trait
@@ -72,11 +72,11 @@
 #else
             BOOST_STATIC_CONSTANT(bool, value=true);
 #endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
- typedef mpl::bool_<value> type;
+ typedef mpl::bool_<has_const_time_erase<T>::value> type;
         };
 #endif
 
-
+
     } // namespace algorithm
 } // namespace boost
 
Index: boost/algorithm/string/std/slist_traits.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/algorithm/string/std/slist_traits.hpp,v
retrieving revision 1.5
diff -u -r1.5 slist_traits.hpp
--- boost/algorithm/string/std/slist_traits.hpp 12 Apr 2005 16:01:48 -0000 1.5
+++ boost/algorithm/string/std/slist_traits.hpp 11 May 2005 07:29:00 -0000
@@ -35,7 +35,7 @@
         yes_type has_const_time_erase_tester( const BOOST_STD_EXTENSION_NAMESPACE::slist<T,AllocT>* );
 
 #else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
+
     // stable iterators trait
         template<typename T, typename AllocT>
         class has_stable_iterators< BOOST_STD_EXTENSION_NAMESPACE::slist<T,AllocT> >
@@ -46,7 +46,7 @@
 #else
             BOOST_STATIC_CONSTANT(bool, value=true);
 #endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
- typedef mpl::bool_<value> type;
+ typedef mpl::bool_<has_stable_iterators<T>::value> type;
         };
 
     // const time insert trait
@@ -59,7 +59,7 @@
 #else
             BOOST_STATIC_CONSTANT(bool, value=true);
 #endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
- typedef mpl::bool_<value> type;
+ typedef mpl::bool_<has_const_time_insert<T>::value> type;
         };
 
     // const time erase trait
@@ -72,7 +72,7 @@
 #else
             BOOST_STATIC_CONSTANT(bool, value=true);
 #endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
- typedef mpl::bool_<value> type;
+ typedef mpl::bool_<has_const_time_erase<T>::value> type;
         };
 #endif
 
Index: boost/algorithm/string/std/string_traits.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/algorithm/string/std/string_traits.hpp,v
retrieving revision 1.4
diff -u -r1.4 string_traits.hpp
--- boost/algorithm/string/std/string_traits.hpp 14 Jul 2004 21:21:54 -0000 1.4
+++ boost/algorithm/string/std/string_traits.hpp 11 May 2005 07:29:09 -0000
@@ -38,7 +38,7 @@
             BOOST_STATIC_CONSTANT(bool, value=true);
 #endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
 
- typedef mpl::bool_<value> type;
+ typedef mpl::bool_<has_native_replace<T>::value> type;
         };
 
 


******************************************************

Building Boost.Regex with Unicode/ICU support disabled.
HINT: define the environment variable ICU_PATH to point to the
root directy of your ICU installation if you have one.
Couldn't find utypes.h in

******************************************************
boost-test(RUN) "algorithm/string/regex" : "libs\algorithm\string\test\regex_test.cpp"
boost-test(RUN) "algorithm/string/replace" : "libs\algorithm\string\test\replace_test.cpp"
boost-test(RUN) "algorithm/string/split" : "libs\algorithm\string\test\split_test.cpp"
boost-test(RUN) "algorithm/string/find" : "libs\algorithm\string\test\find_test.cpp"
boost-test(RUN) "algorithm/string/predicate" : "libs\algorithm\string\test\predicate_test.cpp"
boost-test(RUN) "algorithm/string/conv" : "libs\algorithm\string\test\conv_test.cpp"
boost-test(RUN) "algorithm/string/trim" : "libs\algorithm\string\test\trim_test.cpp"
...found 1132 targets...
...updating 30 targets...
borland-C++-action ..\..\..\..\bin\boost\libs\algorithm\string\test\regex.test\borland\debug\regex_test.obj
regex_test.cpp:
Error E2093 c:\Users\russell\Projects\boost-cvs\boost\boost/algorithm/string/detail/find_format.hpp 133: 'operator!' not implemented in type 'find_format_store<const char *,regex_formatF<string>,string>' for arguments of the same type in function string find_format_copy_impl2<string,find_regexF<regex>,regex_formatF<string>,regex_search_result<const char *>,string>(const string &,find_regexF<regex>,regex_formatF<string>,const regex_search_result<const char *> &,const string &)
Error E2093 c:\Users\russell\Projects\boost-cvs\boost\boost/algorithm/string/detail/find_format.hpp 133: 'operator!' not implemented in type 'find_format_store<const char *,empty_formatF<char>,empty_container<char> >' for arguments of the same type in function string find_format_copy_impl2<string,find_regexF<regex>,empty_formatF<char>,regex_search_result<const char *>,empty_container<char> >(const string &,find_regexF<regex>,empty_formatF<char>,const regex_search_result<const char *> &,const empty_container<char> &)
Error E2093 c:\Users\russell\Projects\boost-cvs\boost\boost/algorithm/string/detail/find_format.hpp 72: 'operator!' not implemented in type 'find_format_store<const char *,regex_formatF<string>,string>' for arguments of the same type in function back_insert_iterator<string> find_format_copy_impl2<back_insert_iterator<string>,string,find_regexF<regex>,regex_formatF<string>,regex_search_result<const char *>,string>(back_insert_iterator<string>,const string &,find_regexF<regex>,regex_formatF<string>,const regex_search_result<const char *> &,const string &)
Error E2093 c:\Users\russell\Projects\boost-cvs\boost\boost/algorithm/string/detail/find_format.hpp 72: 'operator!' not implemented in type 'find_format_store<const char *,empty_formatF<char>,empty_container<char> >' for arguments of the same type in function back_insert_iterator<string> find_format_copy_impl2<back_insert_iterator<string>,string,find_regexF<regex>,empty_formatF<char>,regex_search_result<const char *>,empty_container<char> >(back_insert_iterator<string>,const string &,find_regexF<regex>,empty_formatF<char>,const regex_search_result<const char *> &,const empty_container<char> &)
Error E2093 c:\Users\russell\Projects\boost-cvs\boost\boost/algorithm/string/detail/find_format.hpp 193: 'operator!' not implemented in type 'find_format_store<char *,regex_formatF<string>,string>' for arguments of the same type in function void find_format_impl2<string,find_regexF<regex>,regex_formatF<string>,regex_search_result<char *>,string>(string &,find_regexF<regex>,regex_formatF<string>,const regex_search_result<char *> &,const string &)
Error E2228 c:\Users\russell\Projects\boost-cvs\boost\boost/algorithm/string/detail/find_format.hpp 193: Too many error or warning messages in function void find_format_impl2<string,find_regexF<regex>,regex_formatF<string>,regex_search_result<char *>,string>(string &,find_regexF<regex>,regex_formatF<string>,const regex_search_result<char *> &,const string &)
*** 6 errors in Compile ***

    "bcc32" -j5 -g255 -q -c -P -w -Ve -Vx -a8 -b- -v -Od -vi- -tWC -tWR -tWC -WM- -w-8001 -I"..\..\..\..\bin\boost\libs\algorithm\string\test" -I"c:\Users\russell\Projects\boost-cvs\boost" -o"..\..\..\..\bin\boost\libs\algorithm\string\test\regex.test\borland\debug\regex_test.obj" "regex_test.cpp"

...failed borland-C++-action ..\..\..\..\bin\boost\libs\algorithm\string\test\regex.test\borland\debug\regex_test.obj...
...skipped <@boost!libs!algorithm!string!test\regex.test\borland\debug>regex.CMD for lack of <@boost!libs!algorithm!string!test\regex.test\borland\debug>regex_test.obj...
...skipped <@boost!libs!algorithm!string!test\regex.test\borland\debug>regex.exe for lack of <@boost!libs!algorithm!string!test\regex.test\borland\debug>regex.CMD...
...skipped <@boost!libs!algorithm!string!test\regex.test\borland\debug>regex.run for lack of <@boost!libs!algorithm!string!test\regex.test\borland\debug>regex.exe...
borland-C++-action ..\..\..\..\bin\boost\libs\algorithm\string\test\replace.test\borland\debug\replace_test.obj
replace_test.cpp:
Error E2093 c:\Users\russell\Projects\boost-cvs\boost\boost/algorithm/string/detail/finder.hpp 259: 'operator!' not implemented in type 'iterator_range<const char *>' for arguments of the same type in function operator iterator_range<const char *> () <const char *>(const char *,const char *) const
Error E2093 c:\Users\russell\Projects\boost-cvs\boost\boost/algorithm/string/detail/finder.hpp 259: 'operator!' not implemented in type 'iterator_range<char *>' for arguments of the same type in function operator iterator_range<char *> () <char *>(char *,char *) const
Error E2093 c:\Users\russell\Projects\boost-cvs\boost\boost/algorithm/string/detail/finder.hpp 259: 'operator!' not implemented in type 'iterator_range<_List_iterator<char,_Nonconst_traits<char> > >' for arguments of the same type in function operator iterator_range<_List_iterator<char,_Nonconst_traits<char> > > () <_List_iterator<char,_Nonconst_traits<char> > >(_List_iterator<char,_Nonconst_traits<char> >,_List_iterator<char,_Nonconst_traits<char> >) const
Error E2093 c:\Users\russell\Projects\boost-cvs\boost\boost/algorithm/string/detail/finder.hpp 259: 'operator!' not implemented in type 'iterator_range<const char *>' for arguments of the same type in function operator iterator_range<const char *> () <const char *>(const char *,const char *) const
Error E2093 c:\Users\russell\Projects\boost-cvs\boost\boost/algorithm/string/detail/finder.hpp 259: 'operator!' not implemented in type 'iterator_range<char *>' for arguments of the same type in function operator iterator_range<char *> () <char *>(char *,char *) const
Error E2228 c:\Users\russell\Projects\boost-cvs\boost\boost/algorithm/string/detail/finder.hpp 259: Too many error or warning messages in function operator iterator_range<char *> () <char *>(char *,char *) const
*** 6 errors in Compile ***

    "bcc32" -j5 -g255 -q -c -P -w -Ve -Vx -a8 -b- -v -Od -vi- -tWC -tWR -tWC -WM- -w-8001 -I"..\..\..\..\bin\boost\libs\algorithm\string\test" -I"c:\Users\russell\Projects\boost-cvs\boost" -o"..\..\..\..\bin\boost\libs\algorithm\string\test\replace.test\borland\debug\replace_test.obj" "replace_test.cpp"

...failed borland-C++-action ..\..\..\..\bin\boost\libs\algorithm\string\test\replace.test\borland\debug\replace_test.obj...
...skipped <@boost!libs!algorithm!string!test\replace.test\borland\debug>replace.CMD for lack of <@boost!libs!algorithm!string!test\replace.test\borland\debug>replace_test.obj...
...skipped <@boost!libs!algorithm!string!test\replace.test\borland\debug>replace.exe for lack of <@boost!libs!algorithm!string!test\replace.test\borland\debug>replace.CMD...
...skipped <@boost!libs!algorithm!string!test\replace.test\borland\debug>replace.run for lack of <@boost!libs!algorithm!string!test\replace.test\borland\debug>replace.exe...
borland-C++-action ..\..\..\..\bin\boost\libs\algorithm\string\test\split.test\borland\debug\split_test.obj
split_test.cpp:
borland-Link-action ..\..\..\..\bin\boost\libs\algorithm\string\test\split.test\borland\debug\split.exe
execute-test ..\..\..\..\bin\boost\libs\algorithm\string\test\split.test\borland\debug\split.run
        1 file(s) copied.
**passed** ..\..\..\..\bin\boost\libs\algorithm\string\test\split.test\borland\debug\split.test
borland-C++-action ..\..\..\..\bin\boost\libs\algorithm\string\test\find.test\borland\debug\find_test.obj
find_test.cpp:
Warning W8092 find_test.cpp 170: template argument RangeT passed to 'find' is not an iterator: input iterator required in function find_test()
Warning W8092 find_test.cpp 175: template argument RangeT passed to 'find' is not an iterator: input iterator required in function find_test()
Error E2093 c:\Users\russell\Projects\boost-cvs\boost\boost/algorithm/string/detail/finder.hpp 259: 'operator!' not implemented in type 'iterator_range<char *>' for arguments of the same type in function operator iterator_range<char *> () <char *>(char *,char *) const
Error E2093 c:\Users\russell\Projects\boost-cvs\boost\boost/algorithm/string/detail/finder.hpp 259: 'operator!' not implemented in type 'iterator_range<const char *>' for arguments of the same type in function operator iterator_range<const char *> () <const char *>(const char *,const char *) const
Error E2093 c:\Users\russell\Projects\boost-cvs\boost\boost/algorithm/string/detail/finder.hpp 259: 'operator!' not implemented in type 'iterator_range<const char *>' for arguments of the same type in function operator iterator_range<const char *> () <const char *>(const char *,const char *) const
*** 3 errors in Compile ***

    "bcc32" -j5 -g255 -q -c -P -w -Ve -Vx -a8 -b- -v -Od -vi- -tWC -tWR -tWC -WM- -w-8001 -I"..\..\..\..\bin\boost\libs\algorithm\string\test" -I"c:\Users\russell\Projects\boost-cvs\boost" -o"..\..\..\..\bin\boost\libs\algorithm\string\test\find.test\borland\debug\find_test.obj" "find_test.cpp"

...failed borland-C++-action ..\..\..\..\bin\boost\libs\algorithm\string\test\find.test\borland\debug\find_test.obj...
...skipped <@boost!libs!algorithm!string!test\find.test\borland\debug>find.CMD for lack of <@boost!libs!algorithm!string!test\find.test\borland\debug>find_test.obj...
...skipped <@boost!libs!algorithm!string!test\find.test\borland\debug>find.exe for lack of <@boost!libs!algorithm!string!test\find.test\borland\debug>find.CMD...
...skipped <@boost!libs!algorithm!string!test\find.test\borland\debug>find.run for lack of <@boost!libs!algorithm!string!test\find.test\borland\debug>find.exe...
borland-C++-action ..\..\..\..\bin\boost\libs\algorithm\string\test\predicate.test\borland\debug\predicate_test.obj
predicate_test.cpp:
borland-Link-action ..\..\..\..\bin\boost\libs\algorithm\string\test\predicate.test\borland\debug\predicate.exe
execute-test ..\..\..\..\bin\boost\libs\algorithm\string\test\predicate.test\borland\debug\predicate.run
        1 file(s) copied.
**passed** ..\..\..\..\bin\boost\libs\algorithm\string\test\predicate.test\borland\debug\predicate.test
borland-C++-action ..\..\..\..\bin\boost\libs\algorithm\string\test\trim.test\borland\debug\trim_test.obj
trim_test.cpp:
borland-Link-action ..\..\..\..\bin\boost\libs\algorithm\string\test\trim.test\borland\debug\trim.exe
execute-test ..\..\..\..\bin\boost\libs\algorithm\string\test\trim.test\borland\debug\trim.run
        1 file(s) copied.
**passed** ..\..\..\..\bin\boost\libs\algorithm\string\test\trim.test\borland\debug\trim.test
...failed updating 3 targets...
...skipped 12 targets...
...updated 15 targets...


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