|
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