diff --git a/include/boost/numeric/ublas/concepts.hpp b/include/boost/numeric/ublas/concepts.hpp index 41c91be4..4b8b050d 100644 --- a/include/boost/numeric/ublas/concepts.hpp +++ b/include/boost/numeric/ublas/concepts.hpp @@ -860,7 +860,7 @@ namespace boost { namespace numeric { namespace ublas { ZeroElement (double) { return 0.; } -#ifndef BOOST_MSVC +#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300) template<> std::complex ZeroElement (std::complex) { @@ -882,7 +882,7 @@ namespace boost { namespace numeric { namespace ublas { ZeroElement (vector) { return zero_vector (); } -#ifndef BOOST_MSVC +#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300) template<> vector > ZeroElement (vector >) { @@ -904,7 +904,7 @@ namespace boost { namespace numeric { namespace ublas { ZeroElement (matrix) { return zero_matrix (); } -#ifndef BOOST_MSVC +#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300) template<> matrix > ZeroElement (matrix >) { @@ -930,7 +930,7 @@ namespace boost { namespace numeric { namespace ublas { OneElement (double) { return 1.; } -#ifndef BOOST_MSVC +#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300) template<> std::complex OneElement (std::complex) { @@ -952,7 +952,7 @@ namespace boost { namespace numeric { namespace ublas { OneElement (matrix) { return identity_matrix (); } -#ifndef BOOST_MSVC +#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300) template<> matrix > OneElement (matrix >) { @@ -1631,7 +1631,7 @@ namespace boost { namespace numeric { namespace ublas { VectorSpaceConcept >::constraints (); LinearOperatorConcept, matrix >::constraints (); -#ifndef BOOST_MSVC +#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300) AdditiveAbelianGroupConcept >::constraints (); CommutativeRingWithIdentityConcept >::constraints (); FieldConcept >::constraints (); diff --git a/include/boost/numeric/ublas/matrix_proxy.hpp b/include/boost/numeric/ublas/matrix_proxy.hpp index 25c942c3..ba32a811 100644 --- a/include/boost/numeric/ublas/matrix_proxy.hpp +++ b/include/boost/numeric/ublas/matrix_proxy.hpp @@ -2819,7 +2819,7 @@ namespace boost { namespace numeric { namespace ublas { public iterator_base_traits::template iterator_base::type { #else -#ifndef BOOST_MSVC +#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300) public random_access_iterator_base { #else @@ -2964,7 +2964,7 @@ namespace boost { namespace numeric { namespace ublas { public iterator_base_traits::template iterator_base::type { #else -#ifndef BOOST_MSVC +#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300) public random_access_iterator_base { #else @@ -3108,7 +3108,7 @@ namespace boost { namespace numeric { namespace ublas { public iterator_base_traits::template iterator_base::type { #else -#ifndef BOOST_MSVC +#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300) public random_access_iterator_base { #else @@ -3253,7 +3253,7 @@ namespace boost { namespace numeric { namespace ublas { public iterator_base_traits::template iterator_base::type { #else -#ifndef BOOST_MSVC +#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300) public random_access_iterator_base { #else diff --git a/include/boost/numeric/ublas/raw.hpp b/include/boost/numeric/ublas/raw.hpp index 0d50b1b7..cf06ce61 100755 --- a/include/boost/numeric/ublas/raw.hpp +++ b/include/boost/numeric/ublas/raw.hpp @@ -18,7 +18,7 @@ namespace boost { namespace numeric { namespace ublas { // MSVC 6.0 gets confused by the forward declarations. -#ifndef BOOST_MSVC +#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300) template < typename V > BOOST_UBLAS_INLINE @@ -141,8 +141,8 @@ namespace boost { namespace numeric { namespace ublas { BOOST_UBLAS_INLINE typename c_vector::const_pointer data( const c_vector &v ) ; #endif -#ifndef BOOST_MSVC - // We need data_const() mostly due to MSVC 6.0. +#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300) + // We need data_const() mostly due to MSVC // But how shall we write portable code otherwise? template < typename T, std::size_t N > BOOST_UBLAS_INLINE @@ -194,8 +194,8 @@ namespace boost { namespace numeric { namespace ublas { BOOST_UBLAS_INLINE typename c_matrix::const_pointer data( const c_matrix &m ) ; #endif -#ifndef BOOST_MSVC - // We need data_const() mostly due to MSVC 6.0. +#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300) + // We need data_const() mostly due to MSVC // But how shall we write portable code otherwise? template < typename T, std::size_t M, std::size_t N > BOOST_UBLAS_INLINE @@ -284,8 +284,8 @@ namespace boost { namespace numeric { namespace ublas { BOOST_UBLAS_INLINE typename c_vector::const_pointer base( const c_vector &v ) ; #endif -#ifndef BOOST_MSVC - // We need base_const() mostly due to MSVC 6.0. +#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300) + // We need base_const() mostly due to MSVC // But how shall we write portable code otherwise? template < typename T, std::size_t N > BOOST_UBLAS_INLINE @@ -337,8 +337,8 @@ namespace boost { namespace numeric { namespace ublas { BOOST_UBLAS_INLINE typename c_matrix::const_pointer base( const c_matrix &m ) ; #endif -#ifndef BOOST_MSVC - // We need base_const() mostly due to MSVC 6.0. +#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300) + // We need base_const() mostly due to MSVC // But how shall we write portable code otherwise? template < typename T, std::size_t M, std::size_t N > BOOST_UBLAS_INLINE @@ -610,8 +610,8 @@ namespace boost { namespace numeric { namespace ublas { return v.data() ; } #endif -#ifndef BOOST_MSVC - // We need data_const() mostly due to MSVC 6.0. +#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300) + // We need data_const() mostly due to MSVC // But how shall we write portable code otherwise? template < typename T, std::size_t N > BOOST_UBLAS_INLINE @@ -687,8 +687,8 @@ namespace boost { namespace numeric { namespace ublas { return m.data() ; } #endif -#ifndef BOOST_MSVC - // We need data_const() mostly due to MSVC 6.0. +#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300) + // We need data_const() mostly due to MSVC // But how shall we write portable code otherwise? template < typename T, std::size_t M, std::size_t N > BOOST_UBLAS_INLINE @@ -819,8 +819,8 @@ namespace boost { namespace numeric { namespace ublas { return v.data() ; } #endif -#ifndef BOOST_MSVC - // We need base_const() mostly due to MSVC 6.0. +#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300) + // We need base_const() mostly due to MSVC // But how shall we write portable code otherwise? template < typename T, std::size_t N > BOOST_UBLAS_INLINE @@ -896,8 +896,8 @@ namespace boost { namespace numeric { namespace ublas { return m.data() ; } #endif -#ifndef BOOST_MSVC - // We need base_const() mostly due to MSVC 6.0. +#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300) + // We need base_const() mostly due to MSVC // But how shall we write portable code otherwise? template < typename T, std::size_t M, std::size_t N > BOOST_UBLAS_INLINE diff --git a/include/boost/numeric/ublas/vector_proxy.hpp b/include/boost/numeric/ublas/vector_proxy.hpp index e83d8ffd..c5cea892 100644 --- a/include/boost/numeric/ublas/vector_proxy.hpp +++ b/include/boost/numeric/ublas/vector_proxy.hpp @@ -281,7 +281,7 @@ namespace boost { namespace numeric { namespace ublas { public iterator_base_traits::template iterator_base::type { #else -#ifndef BOOST_MSVC +#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300) public random_access_iterator_base { #else @@ -394,7 +394,7 @@ namespace boost { namespace numeric { namespace ublas { public iterator_base_traits::template iterator_base::type { #else -#ifndef BOOST_MSVC +#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300) public random_access_iterator_base { #else @@ -1053,7 +1053,7 @@ return true; return reverse_iterator (begin ()); } -#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1300) +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) // VC++ 6.0 cannot access data_ from iterator private: #endif @@ -1598,7 +1598,7 @@ return true; return reverse_iterator (begin ()); } -#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1300) +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) // VC++ 6.0 cannot access data_ from iterator private: #endif