Boost logo

Boost :

From: AlisdairM (alisdair.meredith_at_[hidden])
Date: 2006-02-26 06:53:46


The new Borland compiler requires updates to workarounds in 4 files,
for the new version number.

I have migrated the Borland tests to the BOOST_WORKAROUND syntax, so I
can use BOOST_TESTED_AT. This means the workarounds will apply for
updated compilers in the future, without waiting for another boost
cycle for more compatibility patches.

I also use the new library detection macros added to the Borland
compiler config last night.

Patches below, OK to commit?
Or would you prefer to review/apply yourself?

-- 
AlisdairM
cvs diff -u -wb -- boost\date_time\compiler_config.hpp
boost\date_time\locale_config.hpp boost\date_time\string_parse_tree.hpp
boost\date_time\time_system_split.hpp (in directory
E:\sourceforge\devel\boost\)
Index: boost/date_time/compiler_config.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/date_time/compiler_config.hpp,v
retrieving revision 1.43
diff -u -w -b -r1.43 compiler_config.hpp
--- boost/date_time/compiler_config.hpp	25 Aug 2005 16:27:20 -0000	1.43
+++ boost/date_time/compiler_config.hpp	26 Feb 2006 09:35:56 -0000
@@ -8,15 +8,18 @@
  * $Date: 2005/08/25 16:27:20 $
  */
 
+ #include "boost/detail/workaround.hpp"
 
 // With boost release 1.33, date_time will be using a different,
 // more flexible, IO system. This new system is not compatible with
 // old compilers. The original date_time IO system remains for those 
 // compilers. They must define this macro to use the legacy IO.
-#if ((defined(__GNUC__) && (__GNUC__ < 3))                    || \
-     (defined(_MSC_VER) && (_MSC_VER <= 1300) )               || \
-     (defined(__BORLANDC__) && (__BORLANDC__ <= 0x0564) ) )   && \
-    !defined(USE_DATE_TIME_PRE_1_33_FACET_IO)
+//     (defined(__BORLANDC__) && (__BORLANDC__ <= 0x0581) ) )   &&
+ #if(  BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x581) ) \
+    || BOOST_WORKAROUND( __GNUC__, < 3)                         \
+    || (BOOST_WORKAROUND( _MSC_VER, <= 1300) )                  \
+    )                                                           \
+    && !defined(USE_DATE_TIME_PRE_1_33_FACET_IO)
 #define USE_DATE_TIME_PRE_1_33_FACET_IO
 #endif
 
@@ -41,7 +44,7 @@
 #undef BOOST_DATE_TIME_OPTIONAL_GREGORIAN_TYPES
 #endif
 
-#if (defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) ||
(defined(__BORLANDC__)))
+#if (defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) ||
BOOST_WORKAROUND( __BORLANDC__,  BOOST_TESTED_AT(0x581) ) )
 #define BOOST_DATE_TIME_NO_MEMBER_INIT
 #endif
 
@@ -55,13 +58,13 @@
 
 
 /* Workaround for Borland iterator error. Error was "Cannot convert
'istream *' to 'wistream *' in function
istream_iterator<>::istream_iterator() */
-#if defined(__BORLANDC__) && (__BORLANDC__ <= 0x0551)
+#if defined(__BORLANDC__) && defined(BOOST_BCB_WITH_RW_LIB)
 #define BOOST_DATE_TIME_NO_WISTREAM_ITERATOR
 #endif
 
 
 // Borland v5.64 does not have the following in std namespace; v5.5.1
does
-#if defined(__BORLANDC__) && (__BORLANDC__ >= 0x0564) 
+#if defined(__BORLANDC__) && defined(BOOST_BCB_WITH_STLPORT)
 #include <locale>
 namespace std {
   using stlport::tolower;
@@ -78,7 +81,7 @@
 #if (((defined(__GNUC__) && (__GNUC__ < 3)) || \
       (defined(_MSC_VER) && (_MSC_VER < 1300)) ) && \
       !defined(_STLP_OWN_IOSTREAMS) ) || \
-       defined(__BORLANDC__)
+      BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x581) )
 #define BOOST_DATE_TIME_INCLUDE_LIMITED_HEADERS
 #endif
 
Index: boost/date_time/locale_config.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/date_time/locale_config.hpp,v
retrieving revision 1.4
diff -u -w -b -r1.4 locale_config.hpp
--- boost/date_time/locale_config.hpp	25 Aug 2005 16:27:20 -0000	1.4
+++ boost/date_time/locale_config.hpp	25 Feb 2006 20:29:22 -0000
@@ -19,9 +19,12 @@
 #include "boost/config.hpp" //sets BOOST_NO_STD_LOCALE
 
 //This file basically becomes a noop if locales are not properly
supported
-#if (defined(BOOST_NO_STD_LOCALE) || (defined(BOOST_MSVC) && (_MSC_VER
< 1300)) || (defined(__BORLANDC__) && (__BORLANDC__ < 0x564 )))
+#if (defined(BOOST_NO_STD_LOCALE) \
+ || (BOOST_WORKAROUND( BOOST_MSVC, < 1300)) \
+ || (BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x581 )) ) )
 #define BOOST_DATE_TIME_NO_LOCALE
 #endif
 
 
 #endif
+
Index: boost/date_time/string_parse_tree.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/date_time/string_parse_tree.hpp,v
retrieving revision 1.6
diff -u -w -b -r1.6 string_parse_tree.hpp
--- boost/date_time/string_parse_tree.hpp	1 Jul 2005 02:58:57 -0000	1.6
+++ boost/date_time/string_parse_tree.hpp	26 Feb 2006 09:42:04 -0000
@@ -83,7 +83,11 @@
 template<typename charT>
 struct string_parse_tree
 {
+#if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x581) )
+  typedef std::multimap<charT, string_parse_tree< charT> > ptree_coll;
+#else
   typedef std::multimap<charT, string_parse_tree> ptree_coll;
+#endif
   typedef typename ptree_coll::value_type value_type;
   typedef typename ptree_coll::iterator iterator;
   typedef typename ptree_coll::const_iterator const_iterator;
Index: boost/date_time/time_system_split.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/date_time/time_system_split.hpp,v
retrieving revision 1.13
diff -u -w -b -r1.13 time_system_split.hpp
--- boost/date_time/time_system_split.hpp	25 May 2005 14:15:40 -0000
1.13
+++ boost/date_time/time_system_split.hpp	26 Feb 2006 10:12:58 -0000
@@ -40,8 +40,12 @@
    private:
      BOOST_STATIC_CONSTANT(int_type, ticks_per_day = INT64_C(86400) *
config::tick_per_second);
    public:
+# if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0X581) )
+    typedef date_time::wrapping_int< split_timedate_system::int_type,
split_timedate_system::ticks_per_day> wrap_int_type;
+# else
     typedef date_time::wrapping_int<int_type, ticks_per_day>
wrap_int_type;
 #endif
+#endif
 
     static time_rep_type get_time_rep(special_values sv)
     {

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