From bef18df03a16739b2fbd36a77369c3672d7e662a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Walter?= Date: Wed, 5 Nov 2003 08:31:36 +0000 Subject: [PATCH] Compatibility fix for VC 6.0. --- include/boost/numeric/ublas/matrix_assign.hpp | 40 ++++++++++++++++--- include/boost/numeric/ublas/vector_assign.hpp | 15 +++++++ 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/include/boost/numeric/ublas/matrix_assign.hpp b/include/boost/numeric/ublas/matrix_assign.hpp index 2819b364..2401e510 100644 --- a/include/boost/numeric/ublas/matrix_assign.hpp +++ b/include/boost/numeric/ublas/matrix_assign.hpp @@ -516,8 +516,13 @@ namespace boost { namespace numeric { namespace ublas { typedef typename M::value_type value_type; #ifdef BOOST_UBLAS_TYPE_CHECK matrix cm (m.size1 (), m.size2 ()); +#ifndef BOOST_MSVC indexing_matrix_assign (scalar_assign::reference, value_type> (), cm, m, row_major_tag ()); indexing_matrix_assign (functor1_type::template make_debug_functor::reference, value_type> (), cm, e, row_major_tag ()); +#else + indexing_matrix_assign (scalar_assign (), cm, m, row_major_tag ()); + indexing_matrix_assign (functor1_type (), cm, e, row_major_tag ()); +#endif #endif typename M::iterator1 it1 (m.begin1 ()); typename M::iterator1 it1_end (m.end1 ()); @@ -646,8 +651,13 @@ namespace boost { namespace numeric { namespace ublas { typedef typename M::value_type value_type; #ifdef BOOST_UBLAS_TYPE_CHECK matrix cm (m.size1 (), m.size2 ()); +#ifndef BOOST_MSVC indexing_matrix_assign (scalar_assign::reference, value_type> (), cm, m, column_major_tag ()); - indexing_matrix_assign (functor1_type::template make_debug_functor::reference, value_type> (), cm, e, column_major_tag ()); + indexing_matrix_assign (functor1_type::template make_debug_functor::reference, value_type> (), cm, e, column_major_tag ()); +#else + indexing_matrix_assign (scalar_assign (), cm, m, column_major_tag ()); + indexing_matrix_assign (functor1_type (), cm, e, column_major_tag ()); +#endif #endif typename M::iterator2 it2 (m.begin2 ()); typename M::iterator2 it2_end (m.end2 ()); @@ -774,8 +784,13 @@ namespace boost { namespace numeric { namespace ublas { typedef typename M::value_type value_type; #ifdef BOOST_UBLAS_TYPE_CHECK matrix cm (m.size1 (), m.size2 ()); +#ifndef BOOST_MSVC indexing_matrix_assign (scalar_assign::reference, value_type> (), cm, m, row_major_tag ()); - indexing_matrix_assign (functor_type::template make_debug_functor::reference, value_type> (), cm, e, row_major_tag ()); + indexing_matrix_assign (functor_type::template make_debug_functor::reference, value_type> (), cm, e, row_major_tag ()); +#else + indexing_matrix_assign (scalar_assign (), cm, m, row_major_tag ()); + indexing_matrix_assign (functor_type (), cm, e, row_major_tag ()); +#endif #endif m.clear (); typename E::const_iterator1 it1e (e ().begin1 ()); @@ -812,8 +827,13 @@ namespace boost { namespace numeric { namespace ublas { typedef typename M::value_type value_type; #ifdef BOOST_UBLAS_TYPE_CHECK matrix cm (m.size1 (), m.size2 ()); +#ifndef BOOST_MSVC indexing_matrix_assign (scalar_assign::reference, value_type> (), cm, m, column_major_tag ()); - indexing_matrix_assign (functor_type::template make_debug_functor::reference, value_type> (), cm, e, column_major_tag ()); + indexing_matrix_assign (functor_type::template make_debug_functor::reference, value_type> (), cm, e, column_major_tag ()); +#else + indexing_matrix_assign (scalar_assign (), cm, m, column_major_tag ()); + indexing_matrix_assign (functor_type (), cm, e, column_major_tag ()); +#endif #endif m.clear (); typename E::const_iterator2 it2e (e ().begin2 ()); @@ -852,8 +872,13 @@ namespace boost { namespace numeric { namespace ublas { typedef typename M::value_type value_type; #ifdef BOOST_UBLAS_TYPE_CHECK matrix cm (m.size1 (), m.size2 ()); +#ifndef BOOST_MSVC indexing_matrix_assign (scalar_assign::reference, value_type> (), cm, m, row_major_tag ()); - indexing_matrix_assign (functor1_type::template make_debug_functor::reference, value_type> (), cm, e, row_major_tag ()); + indexing_matrix_assign (functor1_type::template make_debug_functor::reference, value_type> (), cm, e, row_major_tag ()); +#else + indexing_matrix_assign (scalar_assign (), cm, m, row_major_tag ()); + indexing_matrix_assign (functor1_type (), cm, e, row_major_tag ()); +#endif #endif typename M::iterator1 it1 (m.begin1 ()); typename M::iterator1 it1_end (m.end1 ()); @@ -1059,8 +1084,13 @@ namespace boost { namespace numeric { namespace ublas { typedef typename M::value_type value_type; #ifdef BOOST_UBLAS_TYPE_CHECK matrix cm (m.size1 (), m.size2 ()); +#ifndef BOOST_MSVC indexing_matrix_assign (scalar_assign::reference, value_type> (), cm, m, column_major_tag ()); - indexing_matrix_assign (functor1_type::template make_debug_functor::reference, value_type> (), cm, e, column_major_tag ()); + indexing_matrix_assign (functor1_type::template make_debug_functor::reference, value_type> (), cm, e, column_major_tag ()); +#else + indexing_matrix_assign (scalar_assign (), cm, m, column_major_tag ()); + indexing_matrix_assign (functor1_type (), cm, e, column_major_tag ()); +#endif #endif typename M::iterator2 it2 (m.begin2 ()); typename M::iterator2 it2_end (m.end2 ()); diff --git a/include/boost/numeric/ublas/vector_assign.hpp b/include/boost/numeric/ublas/vector_assign.hpp index 7db1ec9c..2a913163 100644 --- a/include/boost/numeric/ublas/vector_assign.hpp +++ b/include/boost/numeric/ublas/vector_assign.hpp @@ -284,8 +284,13 @@ namespace boost { namespace numeric { namespace ublas { typedef typename V::value_type value_type; #ifdef BOOST_UBLAS_TYPE_CHECK vector cv (v.size ()); +#ifndef BOOST_MSVC indexing_vector_assign (scalar_assign::reference, value_type> (), cv, v); indexing_vector_assign (functor_type::template make_debug_functor::reference, value_type> (), cv, e); +#else + indexing_vector_assign (scalar_assign (), cv, v); + indexing_vector_assign (functor_type (), cv, e); +#endif #endif typename V::iterator it (v.begin ()); typename V::iterator it_end (v.end ()); @@ -339,8 +344,13 @@ namespace boost { namespace numeric { namespace ublas { typedef typename V::value_type value_type; #ifdef BOOST_UBLAS_TYPE_CHECK vector cv (v.size ()); +#ifndef BOOST_MSVC indexing_vector_assign (scalar_assign::reference, value_type> (), cv, v); indexing_vector_assign (functor_type::template make_debug_functor::reference, value_type> (), cv, e); +#else + indexing_vector_assign (scalar_assign (), cv, v); + indexing_vector_assign (functor_type (), cv, e); +#endif #endif v.clear (); typename E::const_iterator ite (e ().begin ()); @@ -368,8 +378,13 @@ namespace boost { namespace numeric { namespace ublas { typedef typename V::reference reference; #ifdef BOOST_UBLAS_TYPE_CHECK vector cv (v.size ()); +#ifndef BOOST_MSVC indexing_vector_assign (scalar_assign::reference, value_type> (), cv, v); indexing_vector_assign (functor_type::template make_debug_functor::reference, value_type> (), cv, e); +#else + indexing_vector_assign (scalar_assign (), cv, v); + indexing_vector_assign (functor_type (), cv, e); +#endif #endif typename V::iterator it (v.begin ()); typename V::iterator it_end (v.end ());