From 3b940153d028dfb9049059fa640032bdd14cf2ff Mon Sep 17 00:00:00 2001 From: Michael Stevens Date: Thu, 10 Feb 2005 08:37:29 +0000 Subject: [PATCH] FIX incosistent change to new _temporary traits [SVN r27301] --- include/boost/numeric/ublas/banded.hpp | 15 +++++++++++++-- include/boost/numeric/ublas/hermitian.hpp | 1 + include/boost/numeric/ublas/symmetric.hpp | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/include/boost/numeric/ublas/banded.hpp b/include/boost/numeric/ublas/banded.hpp index 90bdee2e..1b2bdbe2 100644 --- a/include/boost/numeric/ublas/banded.hpp +++ b/include/boost/numeric/ublas/banded.hpp @@ -1011,8 +1011,9 @@ namespace boost { namespace numeric { namespace ublas { typename M::closure_type>::type matrix_closure_type; typedef const self_type const_closure_type; typedef self_type closure_type; - typedef typename M::vector_temporary_type vector_temporary_type; - typedef typename M::matrix_temporary_type matrix_temporary_type; + // Replaced by _temporary_traits to avoid type requirements on M + //typedef typename M::vector_temporary_type vector_temporary_type; + //typedef typename M::matrix_temporary_type matrix_temporary_type; typedef typename storage_restrict_traits::storage_category storage_category; typedef typename M::orientation_category orientation_category; @@ -1928,6 +1929,16 @@ namespace boost { namespace numeric { namespace ublas { static const_value_type zero_; }; + // Specialization for temporary_traits + template + struct vector_temporary_traits< banded_adaptor > + : vector_temporary_traits< M > {} ; + + template + struct matrix_temporary_traits< banded_adaptor > + : matrix_temporary_traits< M > {} ; + + template typename banded_adaptor::matrix_type banded_adaptor::nil_; template diff --git a/include/boost/numeric/ublas/hermitian.hpp b/include/boost/numeric/ublas/hermitian.hpp index 379d6fe8..bebf832c 100644 --- a/include/boost/numeric/ublas/hermitian.hpp +++ b/include/boost/numeric/ublas/hermitian.hpp @@ -1139,6 +1139,7 @@ namespace boost { namespace numeric { namespace ublas { typename M::closure_type>::type matrix_closure_type; typedef const self_type const_closure_type; typedef self_type closure_type; + // Replaced by _temporary_traits to avoid type requirements on M //typedef typename M::vector_temporary_type vector_temporary_type; //typedef typename M::matrix_temporary_type matrix_temporary_type; typedef typename storage_restrict_traits::type matrix_closure_type; typedef const self_type const_closure_type; typedef self_type closure_type; + // Replaced by _temporary_traits to avoid type requirements on M //typedef typename M::vector_temporary_type vector_temporary_type; //typedef typename M::matrix_temporary_type matrix_temporary_type; typedef typename storage_restrict_traits > : matrix_temporary_traits< M > {} ; - }}} #endif