Boost logo

Boost :

From: Russell Hind (rh_gmane_at_[hidden])
Date: 2005-05-10 08:10:42


This goes a small way to getting string_algo to work with bcc32. The
current errors I'm getting are in detail/find_format.hpp. If anyone can
suggest a solution, I'd be happy to try it out.

Thanks

Russell

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 &)

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 10 May 2005 13:08:30 -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/formatter.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/algorithm/string/formatter.hpp,v
retrieving revision 1.5
diff -u -r1.5 formatter.hpp
--- boost/algorithm/string/formatter.hpp 12 Apr 2005 16:50:41 -0000 1.5
+++ boost/algorithm/string/formatter.hpp 10 May 2005 13:06:23 -0000
@@ -23,7 +23,7 @@
     for a specific Formatter. An example of such a cooperation is regex_finder
     and regex_formatter.
 
- Formatters are used as pluggable components for replace facilities.
+ Formatters are used as pluggable components for replace facilities.
     This header contains generator functions for the Formatters provided in this library.
 */
 
@@ -64,15 +64,19 @@
         //! Empty formatter
         /*!
             Construct the \c empty_formatter. Empty formatter always returns an empty
- sequence.
+ sequence.
 
             \param Input container used to select a correct value_type for the
                          resulting empty_container<>.
             \return An instance of the \c empty_formatter object.
         */
         template<typename RangeT>
- inline detail::empty_formatF<
+ inline detail::empty_formatF<
+// #ifdef __BORLANDC__
+// typename range_value<RangeT>::type>
+// #else
             BOOST_STRING_TYPENAME range_value<RangeT>::type>
+// #endif
         empty_formatter(const RangeT&)
         {
             return detail::empty_formatF<
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 10 May 2005 12:56:13 -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


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