From 89699f93f6dbce2e57eb2becaa31f01486545541 Mon Sep 17 00:00:00 2001 From: Michael Stevens Date: Wed, 11 Aug 2004 13:50:19 +0000 Subject: [PATCH] Changed Macro defaults for GCC ICC and MSVC awaiting regression results svn path=/trunk/boost/boost/numeric/ublas/; revision=24404 --- include/boost/numeric/ublas/config.hpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/include/boost/numeric/ublas/config.hpp b/include/boost/numeric/ublas/config.hpp index 439f95e8..d78dd9c9 100644 --- a/include/boost/numeric/ublas/config.hpp +++ b/include/boost/numeric/ublas/config.hpp @@ -69,6 +69,7 @@ #define BOOST_UBLAS_NO_LONG_DOUBLE #ifdef NDEBUG +//TODO Make these MSVC version specific if appropriate // MSVC has special inlining options #pragma inline_recursion (on) #pragma inline_depth (255) @@ -104,12 +105,12 @@ // One of these workarounds is needed for MSVC 7.1 AFAIK // (thanks to John Maddock and Martin Lauer). // The second workaround looks like BOOST_UBLAS_QUALIFIED_TYPENAME. +#if !(defined(BOOST_UBLAS_NO_NESTED_CLASS_RELATION) || defined(BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION)) #define BOOST_UBLAS_NO_NESTED_CLASS_RELATION -// #define BOOST_UBLAS_MSVC_NESTED_CLASS_RELATION - #endif #endif +#endif @@ -120,12 +121,12 @@ #define BOOST_UBLAS_USING using #define BOOST_UBLAS_USE_STREAM -// GCC 2.95.3 allows to use iterator_base_traits. +// GCC allows to use iterator_base_traits. #define BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS -// GCC 2.95.3 needs BOOST_UBLAS_REVERSE_ITERATOR_OVERLOADS (this seems to be arguable). -#define BOOST_UBLAS_REVERSE_ITERATOR_OVERLOADS #if __GNUC__ <= 2 && __GNUC_MINOR__ <= 95 +// GCC 2.95.3 needs BOOST_UBLAS_REVERSE_ITERATOR_OVERLOADS (this seems to be arguable). +#define BOOST_UBLAS_REVERSE_ITERATOR_OVERLOADS #define BOOST_UBLAS_NO_MEMBER_FRIENDS #define BOOST_UBLAS_NO_PROXY_SHORTCUTS #endif @@ -152,11 +153,15 @@ #define BOOST_UBLAS_USING using #define BOOST_UBLAS_USE_STREAM +//TODO When is this true? // ICC sometimes needs qualified type names. -#define BOOST_UBLAS_QUALIFIED_TYPENAME +//#define BOOST_UBLAS_QUALIFIED_TYPENAME -#define BOOST_UBLAS_USE_SIMD +// ICC allows to use iterator_base_traits. +#define BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS +// Needed for ICC on Itanium? +#ifdef BOOST_UBLAS_ICC_DEFINE_SWAP namespace boost { namespace numeric { namespace ublas { template @@ -171,7 +176,6 @@ namespace boost { namespace numeric { namespace ublas { namespace std { - // Needed for Intel on Itanium? template inline void iter_swap (boost::numeric::ublas::indexed_iterator it1, @@ -191,6 +195,7 @@ namespace std { } } +#endif #endif