diff --git a/include/boost/utility.hpp b/include/boost/utility.hpp index a56e246..6b51846 100644 --- a/include/boost/utility.hpp +++ b/include/boost/utility.hpp @@ -26,7 +26,7 @@ #define BOOST_UTILITY_HPP #include // broken compiler workarounds -#include // broken compiler workarounds +#include #include // for size_t #include // for std::pair @@ -44,9 +44,11 @@ namespace boost inline void checked_delete(T /*const volatile*/ * x) # endif { -# if !defined(__BORLANDC__) || __BORLANDC__ > 0x0551 +# if !((defined(__BORLANDC__) && __BORLANDC__ <= 0x0551) || (defined(__ICL) && __ICL <= 500)) BOOST_STATIC_ASSERT( sizeof(T) ); // assert type complete at point // of instantiation +# else + sizeof(T); // force error if type incomplete # endif delete x; } @@ -59,9 +61,11 @@ namespace boost inline void checked_array_delete(T /*const volatile*/ * x) # endif { -# if !defined(__BORLANDC__) || __BORLANDC__ > 0x0551 +# if !((defined(__BORLANDC__) && __BORLANDC__ <= 0x0551) || (defined(__ICL) && __ICL <= 500)) BOOST_STATIC_ASSERT( sizeof(T) ); // assert type complete at point // of instantiation +# else + sizeof(T); // force error if type incomplete # endif delete [] x; }