diff --git a/include/boost/numeric/ublas/config.hpp b/include/boost/numeric/ublas/config.hpp index 05b73973..5a7e7e17 100644 --- a/include/boost/numeric/ublas/config.hpp +++ b/include/boost/numeric/ublas/config.hpp @@ -48,11 +48,13 @@ #pragma warning (disable: 4503) #pragma warning (disable: 4786) +// Member friend syntax works but lookup sometime fails on VC7 +#define BOOST_UBLAS_NO_MEMBER_FRIENDS // Base traits templates syntax not supported #define BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS -// MSVC doesn't always accept the 'typename' keyword. +// MSVC doesn't always accept the 'typename' keyword #define BOOST_UBLAS_TYPENAME -// MSVC doesn't accept the 'using' keyword (at least for importing base members). +// MSVC doesn't accept the 'using' keyword (at least for importing base members) #define BOOST_UBLAS_USING // MSVC doesn't support long double #define BOOST_UBLAS_NO_LONG_DOUBLE diff --git a/include/boost/numeric/ublas/storage.hpp b/include/boost/numeric/ublas/storage.hpp index f628a397..7b64812a 100644 --- a/include/boost/numeric/ublas/storage.hpp +++ b/include/boost/numeric/ublas/storage.hpp @@ -1642,9 +1642,7 @@ namespace boost { namespace numeric { namespace ublas { void swap(index_pair lhs, index_pair rhs) { lhs.swap(rhs); } -#endif -#if defined (BOOST_UBLAS_NO_MEMBER_FRIENDS) || defined (BOOST_MSVC) template BOOST_UBLAS_INLINE bool operator == (const index_pair& lhs, const index_pair& rhs) { @@ -1829,9 +1827,7 @@ namespace boost { namespace numeric { namespace ublas { void swap(index_triple lhs, index_triple rhs) { lhs.swap(rhs); } -#endif -#if defined (BOOST_UBLAS_NO_MEMBER_FRIENDS) || defined (BOOST_MSVC) template BOOST_UBLAS_INLINE bool operator == (const index_triple& lhs, const index_triple& rhs) { @@ -1840,7 +1836,7 @@ namespace boost { namespace numeric { namespace ublas { template BOOST_UBLAS_INLINE bool operator != (const index_triple& lhs, const index_triple& rhs) { - return lhs.equal(rhs); + return !lhs.equal(rhs); } template BOOST_UBLAS_INLINE