2
0
mirror of https://github.com/boostorg/ublas.git synced 2026-02-22 15:52:18 +00:00

VC6 member function sepecializtions disabled

consistent pointer typedefs
This commit is contained in:
Michael Stevens
2004-09-07 13:13:24 +00:00
parent 1c9aeba541
commit 5c7e60f71f
2 changed files with 32 additions and 23 deletions

View File

@@ -43,6 +43,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef T &reference;
typedef A array_type;
private:
typedef T *pointer;
typedef F functor_type;
typedef const matrix<T, F, A> const_self_type;
typedef matrix<T, F, A> self_type;
@@ -148,6 +149,7 @@ namespace boost { namespace numeric { namespace ublas {
data () = m.data ();
return *this;
}
#ifndef BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
template<class A2, class F2> // Generic matrix assignment without temporary
BOOST_UBLAS_INLINE
matrix &operator = (const matrix<T, A2, F2> &m) {
@@ -155,6 +157,7 @@ namespace boost { namespace numeric { namespace ublas {
assign (m);
return *this;
}
#endif
BOOST_UBLAS_INLINE
matrix &assign_temporary (matrix &m) {
swap (m);
@@ -338,7 +341,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef typename matrix::value_type value_type;
typedef typename matrix::difference_type difference_type;
typedef typename matrix::const_reference reference;
typedef const typename matrix::value_type *pointer;
typedef const typename matrix::pointer pointer;
#endif
typedef const_iterator2 dual_iterator_type;
typedef const_reverse_iterator2 dual_reverse_iterator_type;
@@ -481,7 +484,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef typename matrix::value_type value_type;
typedef typename matrix::difference_type difference_type;
typedef typename matrix::reference reference;
typedef typename matrix::value_type *pointer;
typedef typename matrix::pointer pointer;
#endif
typedef iterator2 dual_iterator_type;
typedef reverse_iterator2 dual_reverse_iterator_type;
@@ -623,7 +626,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef typename matrix::value_type value_type;
typedef typename matrix::difference_type difference_type;
typedef typename matrix::const_reference reference;
typedef const typename matrix::value_type *pointer;
typedef const typename matrix::pointer pointer;
#endif
typedef const_iterator1 dual_iterator_type;
typedef const_reverse_iterator1 dual_reverse_iterator_type;
@@ -766,7 +769,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef typename matrix::value_type value_type;
typedef typename matrix::difference_type difference_type;
typedef typename matrix::reference reference;
typedef typename matrix::value_type *pointer;
typedef typename matrix::pointer pointer;
#endif
typedef iterator1 dual_iterator_type;
typedef reverse_iterator1 dual_reverse_iterator_type;
@@ -975,12 +978,14 @@ namespace boost { namespace numeric { namespace ublas {
matrix_type::operator = (m);
return *this;
}
#ifdef BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
template<class A2, class F2> // Generic matrix assignment
BOOST_UBLAS_INLINE
bounded_matrix &operator = (const matrix<T, A2, F2> &m) {
matrix_type::operator = (m);
return *this;
}
#endif
template<class AE>
BOOST_UBLAS_INLINE
bounded_matrix &operator = (const matrix_expression<AE> &ae) {
@@ -1004,6 +1009,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef T &reference;
typedef A array_type;
private:
typedef T *pointer;
typedef F functor_type;
typedef const vector_of_vector<T, F, A> const_self_type;
typedef vector_of_vector<T, F, A> self_type;
@@ -1275,7 +1281,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef typename vector_of_vector::value_type value_type;
typedef typename vector_of_vector::difference_type difference_type;
typedef typename vector_of_vector::const_reference reference;
typedef const typename vector_of_vector::value_type *pointer;
typedef const typename vector_of_vector::pointer pointer;
#endif
typedef const_iterator2 dual_iterator_type;
typedef const_reverse_iterator2 dual_reverse_iterator_type;
@@ -1435,7 +1441,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef typename vector_of_vector::value_type value_type;
typedef typename vector_of_vector::difference_type difference_type;
typedef typename vector_of_vector::reference reference;
typedef typename vector_of_vector::value_type *pointer;
typedef typename vector_of_vector::pointer pointer;
#endif
typedef iterator2 dual_iterator_type;
typedef reverse_iterator2 dual_reverse_iterator_type;
@@ -1594,7 +1600,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef typename vector_of_vector::value_type value_type;
typedef typename vector_of_vector::difference_type difference_type;
typedef typename vector_of_vector::const_reference reference;
typedef const typename vector_of_vector::value_type *pointer;
typedef const typename vector_of_vector::pointer pointer;
#endif
typedef const_iterator1 dual_iterator_type;
typedef const_reverse_iterator1 dual_reverse_iterator_type;
@@ -1754,7 +1760,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef typename vector_of_vector::value_type value_type;
typedef typename vector_of_vector::difference_type difference_type;
typedef typename vector_of_vector::reference reference;
typedef typename vector_of_vector::value_type *pointer;
typedef typename vector_of_vector::pointer pointer;
#endif
typedef iterator1 dual_iterator_type;
typedef reverse_iterator1 dual_reverse_iterator_type;
@@ -1958,6 +1964,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef const T &const_reference;
typedef T &reference;
private:
typedef const T *const_pointer;
typedef const identity_matrix<T> const_self_type;
typedef identity_matrix<T> self_type;
public:
@@ -2102,7 +2109,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef typename identity_matrix::value_type value_type;
typedef typename identity_matrix::difference_type difference_type;
typedef typename identity_matrix::const_reference reference;
typedef const typename identity_matrix::value_type *pointer;
typedef typename identity_matrix::const_pointer pointer;
#endif
typedef const_iterator2 dual_iterator_type;
typedef const_reverse_iterator2 dual_reverse_iterator_type;
@@ -2247,7 +2254,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef typename identity_matrix::value_type value_type;
typedef typename identity_matrix::difference_type difference_type;
typedef typename identity_matrix::const_reference reference;
typedef const typename identity_matrix::value_type *pointer;
typedef typename identity_matrix::const_pointer pointer;
#endif
typedef const_iterator1 dual_iterator_type;
typedef const_reverse_iterator1 dual_reverse_iterator_type;
@@ -2433,6 +2440,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef const T &const_reference;
typedef T &reference;
private:
typedef const T *const_pointer;
typedef const zero_matrix<T> const_self_type;
typedef zero_matrix<T> self_type;
public:
@@ -2569,7 +2577,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef typename zero_matrix::value_type value_type;
typedef typename zero_matrix::difference_type difference_type;
typedef typename zero_matrix::const_reference reference;
typedef const typename zero_matrix::value_type *pointer;
typedef typename zero_matrix::const_pointer pointer;
#endif
typedef const_iterator2 dual_iterator_type;
typedef const_reverse_iterator2 dual_reverse_iterator_type;
@@ -2708,7 +2716,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef typename zero_matrix::value_type value_type;
typedef typename zero_matrix::difference_type difference_type;
typedef typename zero_matrix::const_reference reference;
typedef const typename zero_matrix::value_type *pointer;
typedef typename zero_matrix::const_pointer pointer;
#endif
typedef const_iterator1 dual_iterator_type;
typedef const_reverse_iterator1 dual_reverse_iterator_type;
@@ -2887,6 +2895,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef const T &const_reference;
typedef T &reference;
private:
typedef const T *const_pointer;
typedef const scalar_matrix<T> const_self_type;
typedef scalar_matrix<T> self_type;
public:
@@ -3012,7 +3021,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef typename scalar_matrix::value_type value_type;
typedef typename scalar_matrix::difference_type difference_type;
typedef typename scalar_matrix::const_reference reference;
typedef const typename scalar_matrix::value_type *pointer;
typedef typename scalar_matrix::const_pointer pointer;
#endif
typedef const_iterator2 dual_iterator_type;
typedef const_reverse_iterator2 dual_reverse_iterator_type;
@@ -3157,7 +3166,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef typename scalar_matrix::value_type value_type;
typedef typename scalar_matrix::difference_type difference_type;
typedef typename scalar_matrix::const_reference reference;
typedef const typename scalar_matrix::value_type *pointer;
typedef typename scalar_matrix::const_pointer pointer;
#endif
typedef const_iterator1 dual_iterator_type;
typedef const_reverse_iterator1 dual_reverse_iterator_type;
@@ -3553,8 +3562,8 @@ namespace boost { namespace numeric { namespace ublas {
// Iterator types
private:
// Use pointers for iterator
typedef const T *const_iterator_type;
typedef T *iterator_type;
typedef const_pointer const_iterator_type;
typedef pointer iterator_type;
public:
#ifdef BOOST_UBLAS_USE_INDEXED_ITERATOR

View File

@@ -90,7 +90,6 @@ namespace boost { namespace numeric { namespace ublas {
typedef T &reference;
typedef A array_type;
private:
typedef const T *const_pointer;
typedef T *pointer;
typedef const vector<T, A> const_self_type;
typedef vector<T, A> self_type;
@@ -175,6 +174,7 @@ namespace boost { namespace numeric { namespace ublas {
data () = v.data ();
return *this;
}
#ifndef BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
template<class A2> // Generic vector assignment without temporary
BOOST_UBLAS_INLINE
vector &operator = (const vector<T, A2> &v) {
@@ -182,6 +182,7 @@ namespace boost { namespace numeric { namespace ublas {
assign (v);
return *this;
}
#endif
BOOST_UBLAS_INLINE
vector &assign_temporary (vector &v) {
swap (v);
@@ -333,7 +334,7 @@ namespace boost { namespace numeric { namespace ublas {
typedef typename vector::difference_type difference_type;
typedef typename vector::value_type value_type;
typedef typename vector::const_reference reference;
typedef typename vector::const_pointer pointer;
typedef const typename vector::pointer pointer;
#endif
// Construction and destruction
@@ -581,10 +582,12 @@ namespace boost { namespace numeric { namespace ublas {
BOOST_UBLAS_INLINE
bounded_vector (const bounded_vector &v):
vector_type (v) {}
#ifndef BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
template<class A2> // Allow vector<T,bounded_array<N> construction
BOOST_UBLAS_INLINE
bounded_vector (const vector<T, A2> &v):
vector_type (v) {}
#endif
template<class AE>
BOOST_UBLAS_INLINE
bounded_vector (const vector_expression<AE> &ae):
@@ -627,7 +630,6 @@ namespace boost { namespace numeric { namespace ublas {
typedef T &reference;
private:
typedef const T *const_pointer;
typedef T *pointer;
typedef const unit_vector<T> const_self_type;
typedef unit_vector<T> self_type;
public:
@@ -885,7 +887,6 @@ namespace boost { namespace numeric { namespace ublas {
typedef T &reference;
private:
typedef const T *const_pointer;
typedef T *pointer;
typedef const zero_vector<T> const_self_type;
typedef zero_vector<T> self_type;
public:
@@ -1098,7 +1099,6 @@ namespace boost { namespace numeric { namespace ublas {
typedef T &reference;
private:
typedef const T *const_pointer;
typedef T *pointer;
typedef const scalar_vector<T> const_self_type;
typedef scalar_vector<T> self_type;
public:
@@ -1529,8 +1529,8 @@ namespace boost { namespace numeric { namespace ublas {
// Iterator types
private:
// Use pointers for iterator
typedef const T *const_iterator_type;
typedef T *iterator_type;
typedef const_pointer const_iterator_type;
typedef pointer iterator_type;
public:
#ifdef BOOST_UBLAS_USE_INDEXED_ITERATOR