From d1a45cffdd849ba2d2203a3a87fcf5ebeda649af Mon Sep 17 00:00:00 2001 From: Robert Ramey Date: Mon, 6 Oct 2008 16:30:30 +0000 Subject: [PATCH] Better support for Borland compiler [SVN r49146] --- include/boost/archive/basic_binary_iprimitive.hpp | 12 +++++++++--- include/boost/archive/basic_binary_oprimitive.hpp | 12 +++++++++--- include/boost/archive/detail/abi_suffix.hpp | 8 ++++---- include/boost/serialization/static_warning.hpp | 2 -- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/include/boost/archive/basic_binary_iprimitive.hpp b/include/boost/archive/basic_binary_iprimitive.hpp index 48d71889..45ba9a4d 100644 --- a/include/boost/archive/basic_binary_iprimitive.hpp +++ b/include/boost/archive/basic_binary_iprimitive.hpp @@ -122,9 +122,15 @@ public: // we provide an optimized load for all fundamental types // typedef serialization::is_bitwise_serializable // use_array_optimization; - struct use_array_optimization { - template - struct apply : public serialization::is_bitwise_serializable {}; + struct use_array_optimization { + template + #if defined(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS) + struct apply { + typedef BOOST_DEDUCED_TYPENAME boost::serialization::is_bitwise_serializable::type type; + }; + #else + struct apply : public boost::serialization::is_bitwise_serializable {}; + #endif }; // the optimized load_array dispatches to load_binary diff --git a/include/boost/archive/basic_binary_oprimitive.hpp b/include/boost/archive/basic_binary_oprimitive.hpp index bc104cdd..001732f9 100644 --- a/include/boost/archive/basic_binary_oprimitive.hpp +++ b/include/boost/archive/basic_binary_oprimitive.hpp @@ -116,11 +116,17 @@ public: // we provide an optimized save for all fundamental types // typedef serialization::is_bitwise_serializable - // use_array_optimization; + // use_array_optimization; // workaround without using mpl lambdas struct use_array_optimization { - template - struct apply : public boost::serialization::is_bitwise_serializable {}; + template + #if defined(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS) + struct apply { + typedef BOOST_DEDUCED_TYPENAME boost::serialization::is_bitwise_serializable::type type; + }; + #else + struct apply : public boost::serialization::is_bitwise_serializable {}; + #endif }; diff --git a/include/boost/archive/detail/abi_suffix.hpp b/include/boost/archive/detail/abi_suffix.hpp index 063b7f2e..a283b36c 100644 --- a/include/boost/archive/detail/abi_suffix.hpp +++ b/include/boost/archive/detail/abi_suffix.hpp @@ -8,12 +8,12 @@ // See http://www.boost.org for updates, documentation, and revision history. -#if defined( __BORLANDC__ ) -#pragma nopushoptwarn -#endif - #ifdef BOOST_MSVC #pragma warning(pop) #endif #include // pops abi_suffix.hpp pragmas +#if defined( __BORLANDC__ ) +#pragma nopushoptwarn +#endif + diff --git a/include/boost/serialization/static_warning.hpp b/include/boost/serialization/static_warning.hpp index 1a96b555..adeb4120 100644 --- a/include/boost/serialization/static_warning.hpp +++ b/include/boost/serialization/static_warning.hpp @@ -77,8 +77,6 @@ //------------------Configure-------------------------------------------------// # if defined(BOOST_INTEL) -# elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x600) -# define BOOST_HAS_DESCRIPTIVE_UNREFERENCED_VARIABLE_WARNING # elif defined(__PGI) # define BOOST_HAS_DESCRIPTIVE_DIVIDE_BY_ZERO_WARNING # elif defined(__GNUC__) && !defined(BOOST_INTEL) // && (__GNUC__ * 100 + __GNUC_MINOR__ <= 302)