2
0
mirror of https://github.com/boostorg/ublas.git synced 2026-02-19 14:52:17 +00:00

Change to NO_ITERATOR_BASE_TRAITS

as a bug workaround
Use code that works with VC6


[SVN r24549]
This commit is contained in:
Michael Stevens
2004-08-18 09:34:30 +00:00
parent a30040656a
commit c3341fcbb7
5 changed files with 57 additions and 91 deletions

View File

@@ -50,6 +50,8 @@
#pragma warning (disable: 4503)
#pragma warning (disable: 4786)
// Base traits templates syntax not supported
#define BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
// 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).
@@ -105,9 +107,6 @@
// GNU Compiler Collection
#if defined (__GNUC__) && ! defined (BOOST_STRICT_CONFIG)
// GCC allows to use iterator_base_traits.
#define BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#if __GNUC__ <= 2 && __GNUC_MINOR__ <= 95
// GCC 2.95.3 needs BOOST_UBLAS_REVERSE_ITERATOR_OVERLOADS (this seems to be arguable).
#define BOOST_UBLAS_REVERSE_ITERATOR_OVERLOADS
@@ -124,12 +123,10 @@
// Intel Compiler
#if defined (BOOST_INTEL) && ! defined (BOOST_STRICT_CONFIG)
//TODO When is this true?
// ICC sometimes needs qualified type names.
//#define BOOST_UBLAS_QUALIFIED_TYPENAME
// ICC memory usage and time grows with this enabled
//#define BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#if (BOOST_INTEL < 800)
// Base traits templates syntax untested
#define BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
#endif
// Define swap for index_pair and triple.
#if (BOOST_INTEL <= 800)
@@ -171,10 +168,7 @@ namespace std {
// Thanks to Kresimir Fresl for porting to Comeau.
#if defined (__COMO__) && ! defined (BOOST_STRICT_CONFIG)
// Comeau allows to use iterator_base_traits.
#define BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
// Comeau should not have any problems
#endif
@@ -185,6 +179,8 @@ namespace std {
// 8.x
#if __MWERKS__ <= 0x3003
#define BOOST_UBLAS_NO_MEMBER_FRIENDS
// Base traits templates syntax untested
#define BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
#endif
#endif

View File

@@ -771,7 +771,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator1:
public container_const_reference<vector_matrix_binary>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_restrict_traits<typename E1::const_iterator::iterator_category,
typename E2::const_iterator::iterator_category>::iterator_category>::template
iterator_base<const_iterator1, value_type>::type {
@@ -941,7 +941,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator2:
public container_const_reference<vector_matrix_binary>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_restrict_traits<typename E1::const_iterator::iterator_category,
typename E2::const_iterator::iterator_category>::iterator_category>::template
iterator_base<const_iterator2, value_type>::type {
@@ -1259,7 +1259,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator1:
public container_const_reference<matrix_unary1>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename E::const_iterator1::iterator_category>::template
iterator_base<const_iterator1, value_type>::type {
#else
@@ -1398,7 +1398,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator2:
public container_const_reference<matrix_unary1>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename E::const_iterator2::iterator_category>::template
iterator_base<const_iterator2, value_type>::type {
#else
@@ -1732,7 +1732,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator1:
public container_const_reference<matrix_unary2>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename E::const_iterator2::iterator_category>::template
iterator_base<const_iterator1, value_type>::type {
#else
@@ -1871,7 +1871,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator2:
public container_const_reference<matrix_unary2>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename E::const_iterator1::iterator_category>::template
iterator_base<const_iterator2, value_type>::type {
#else
@@ -2199,7 +2199,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator1:
public container_const_reference<matrix_binary>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_restrict_traits<typename E1::const_iterator1::iterator_category,
typename E2::const_iterator1::iterator_category>::iterator_category>::template
iterator_base<const_iterator1, value_type>::type {
@@ -2465,7 +2465,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator2:
public container_const_reference<matrix_binary>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_restrict_traits<typename E1::const_iterator2::iterator_category,
typename E2::const_iterator2::iterator_category>::iterator_category>::template
iterator_base<const_iterator2, value_type>::type {
@@ -2924,7 +2924,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator1:
public container_const_reference<matrix_binary_scalar1>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename E2::const_iterator1::iterator_category>::template
iterator_base<const_iterator1, value_type>::type {
#else
@@ -3071,7 +3071,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator2:
public container_const_reference<matrix_binary_scalar1>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename E2::const_iterator2::iterator_category>::template
iterator_base<const_iterator2, value_type>::type {
#else
@@ -3373,7 +3373,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator1:
public container_const_reference<matrix_binary_scalar2>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename E1::const_iterator1::iterator_category>::template
iterator_base<const_iterator1, value_type>::type {
#else
@@ -3520,7 +3520,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator2:
public container_const_reference<matrix_binary_scalar2>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename E1::const_iterator2::iterator_category>::template
iterator_base<const_iterator2, value_type>::type {
#else
@@ -3806,7 +3806,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator:
public container_const_reference<matrix_vector_binary1>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_restrict_traits<typename E1::const_iterator1::iterator_category,
typename E2::const_iterator::iterator_category>::iterator_category>::template
iterator_base<const_iterator, value_type>::type {
@@ -4201,7 +4201,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator:
public container_const_reference<matrix_vector_binary2>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_restrict_traits<typename E1::const_iterator::iterator_category,
typename E2::const_iterator2::iterator_category>::iterator_category>::template
iterator_base<const_iterator, value_type>::type {
@@ -4635,7 +4635,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator1:
public container_const_reference<matrix_matrix_binary>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_restrict_traits<typename E1::const_iterator1::iterator_category,
typename E2::const_iterator2::iterator_category>::iterator_category>::template
iterator_base<const_iterator1, value_type>::type {
@@ -4864,7 +4864,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator2:
public container_const_reference<matrix_matrix_binary>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_restrict_traits<typename E1::const_iterator1::iterator_category,
typename E2::const_iterator2::iterator_category>::iterator_category>::template
iterator_base<const_iterator2, value_type>::type {

View File

@@ -265,7 +265,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator:
public container_const_reference<matrix_row>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename const_iterator_type::iterator_category>::template
iterator_base<const_iterator, value_type>::type {
#else
@@ -373,7 +373,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class iterator:
public container_reference<matrix_row>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_type::iterator_category>::template
iterator_base<iterator, value_type>::type {
#else
@@ -771,7 +771,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator:
public container_const_reference<matrix_column>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename const_iterator_type::iterator_category>::template
iterator_base<const_iterator, value_type>::type {
#else
@@ -879,7 +879,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class iterator:
public container_reference<matrix_column>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_type::iterator_category>::template
iterator_base<iterator, value_type>::type {
#else
@@ -1262,7 +1262,7 @@ namespace boost { namespace numeric { namespace ublas {
class const_iterator:
public container_const_reference<matrix_vector_range>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_restrict_traits<typename M::const_iterator1::iterator_category,
typename M::const_iterator2::iterator_category>::iterator_category>::template
iterator_base<const_iterator, value_type>::type {
@@ -1380,7 +1380,7 @@ namespace boost { namespace numeric { namespace ublas {
class iterator:
public container_reference<matrix_vector_range>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_restrict_traits<typename M::iterator1::iterator_category,
typename M::iterator2::iterator_category>::iterator_category>::template
iterator_base<iterator, value_type>::type {
@@ -1763,7 +1763,7 @@ namespace boost { namespace numeric { namespace ublas {
class const_iterator:
public container_const_reference<matrix_vector_slice>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_restrict_traits<typename M::const_iterator1::iterator_category,
typename M::const_iterator2::iterator_category>::iterator_category>::template
iterator_base<const_iterator, value_type>::type {
@@ -1881,7 +1881,7 @@ namespace boost { namespace numeric { namespace ublas {
class iterator:
public container_reference<matrix_vector_slice>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_restrict_traits<typename M::iterator1::iterator_category,
typename M::iterator2::iterator_category>::iterator_category>::template
iterator_base<iterator, value_type>::type {
@@ -2265,7 +2265,7 @@ namespace boost { namespace numeric { namespace ublas {
class const_iterator:
public container_const_reference<matrix_vector_indirect>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_restrict_traits<typename M::const_iterator1::iterator_category,
typename M::const_iterator2::iterator_category>::iterator_category>::template
iterator_base<const_iterator, value_type>::type {
@@ -2383,7 +2383,7 @@ namespace boost { namespace numeric { namespace ublas {
class iterator:
public container_reference<matrix_vector_indirect>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_restrict_traits<typename M::iterator1::iterator_category,
typename M::iterator2::iterator_category>::iterator_category>::template
iterator_base<iterator, value_type>::type {
@@ -2821,17 +2821,12 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator1:
public container_const_reference<matrix_range>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename const_iterator1_type::iterator_category>::template
iterator_base<const_iterator1, value_type>::type {
#else
#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300)
public random_access_iterator_base<typename const_iterator1_type::iterator_category,
const_iterator1, value_type> {
#else
public random_access_iterator_base<typename M::const_iterator1::iterator_category,
const_iterator1, value_type> {
#endif
#endif
public:
typedef typename const_iterator1_type::iterator_category iterator_category;
@@ -2966,17 +2961,12 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class iterator1:
public container_reference<matrix_range>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator1_type::iterator_category>::template
iterator_base<iterator1, value_type>::type {
#else
#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300)
public random_access_iterator_base<typename iterator1_type::iterator_category,
iterator1, value_type> {
#else
public random_access_iterator_base<typename M::iterator1::iterator_category,
iterator1, value_type> {
#endif
#endif
public:
typedef typename iterator1_type::iterator_category iterator_category;
@@ -3110,17 +3100,12 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator2:
public container_const_reference<matrix_range>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename const_iterator2_type::iterator_category>::template
iterator_base<const_iterator2, value_type>::type {
#else
#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300)
public random_access_iterator_base<typename const_iterator2_type::iterator_category,
const_iterator2, value_type> {
#else
public random_access_iterator_base<typename M::const_iterator2::iterator_category,
const_iterator2, value_type> {
#endif
#endif
public:
typedef typename const_iterator2_type::iterator_category iterator_category;
@@ -3255,17 +3240,12 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class iterator2:
public container_reference<matrix_range>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator2_type::iterator_category>::template
iterator_base<iterator2, value_type>::type {
#else
#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300)
public random_access_iterator_base<typename iterator2_type::iterator_category,
iterator2, value_type> {
#else
public random_access_iterator_base<typename M::iterator2::iterator_category,
iterator2, value_type> {
#endif
#endif
public:
typedef typename iterator2_type::iterator_category iterator_category;
@@ -3757,7 +3737,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator1:
public container_const_reference<matrix_slice>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename M::const_iterator1::iterator_category>::template
iterator_base<const_iterator1, value_type>::type {
#else
@@ -3900,7 +3880,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class iterator1:
public container_reference<matrix_slice>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename M::iterator1::iterator_category>::template
iterator_base<iterator1, value_type>::type {
#else
@@ -4042,7 +4022,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator2:
public container_const_reference<matrix_slice>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename M::const_iterator2::iterator_category>::template
iterator_base<const_iterator2, value_type>::type {
#else
@@ -4185,7 +4165,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class iterator2:
public container_reference<matrix_slice>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename M::iterator2::iterator_category>::template
iterator_base<iterator2, value_type>::type {
#else
@@ -4697,7 +4677,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator1:
public container_const_reference<matrix_indirect>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename M::const_iterator1::iterator_category>::template
iterator_base<const_iterator1, value_type>::type {
#else
@@ -4840,7 +4820,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class iterator1:
public container_reference<matrix_indirect>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename M::iterator1::iterator_category>::template
iterator_base<iterator1, value_type>::type {
#else
@@ -4982,7 +4962,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator2:
public container_const_reference<matrix_indirect>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename M::const_iterator2::iterator_category>::template
iterator_base<const_iterator2, value_type>::type {
#else
@@ -5125,7 +5105,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class iterator2:
public container_reference<matrix_indirect>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename M::iterator2::iterator_category>::template
iterator_base<iterator2, value_type>::type {
#else

View File

@@ -634,7 +634,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator:
public container_const_reference<vector_unary>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename E::const_iterator::iterator_category>::template
iterator_base<const_iterator, value_type>::type {
#else
@@ -925,7 +925,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator:
public container_const_reference<vector_binary>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_restrict_traits<typename E1::const_iterator::iterator_category,
typename E2::const_iterator::iterator_category>::iterator_category>::template
iterator_base<const_iterator, value_type>::type {
@@ -1307,7 +1307,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator:
public container_const_reference<vector_binary_scalar1>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename E2::const_iterator::iterator_category>::template
iterator_base<const_iterator, value_type>::type {
#else
@@ -1548,7 +1548,7 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator:
public container_const_reference<vector_binary_scalar2>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename E1::const_iterator::iterator_category>::template
iterator_base<const_iterator, value_type>::type {
#else

View File

@@ -277,17 +277,12 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator:
public container_const_reference<vector_range>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename const_iterator_type::iterator_category>::template
iterator_base<const_iterator, value_type>::type {
#else
#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300)
public random_access_iterator_base<typename const_iterator_type::iterator_category,
const_iterator, value_type> {
#else
public random_access_iterator_base<typename V::const_iterator::iterator_category,
const_iterator, value_type> {
#endif
#endif
public:
typedef typename const_iterator_type::iterator_category iterator_category;
@@ -390,17 +385,12 @@ namespace boost { namespace numeric { namespace ublas {
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class iterator:
public container_reference<vector_range>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename iterator_type::iterator_category>::template
iterator_base<iterator, value_type>::type {
#else
#if !(defined(BOOST_MSVC) && BOOST_MSVC < 1300)
public random_access_iterator_base<typename iterator_type::iterator_category,
iterator, value_type> {
#else
public random_access_iterator_base<typename V::iterator::iterator_category,
iterator, value_type> {
#endif
#endif
public:
typedef typename iterator_type::iterator_category iterator_category;
@@ -815,7 +805,7 @@ return true;
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator:
public container_const_reference<vector_slice>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename V::const_iterator::iterator_category>::template
iterator_base<const_iterator, value_type>::type {
#else
@@ -923,7 +913,7 @@ return true;
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class iterator:
public container_reference<vector_slice>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename V::iterator::iterator_category>::template
iterator_base<iterator, value_type>::type {
#else
@@ -1359,7 +1349,7 @@ return true;
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class const_iterator:
public container_const_reference<vector_indirect>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename V::const_iterator::iterator_category>::template
iterator_base<const_iterator, value_type>::type {
#else
@@ -1467,7 +1457,7 @@ return true;
#ifndef BOOST_UBLAS_USE_INDEXED_ITERATOR
class iterator:
public container_reference<vector_indirect>,
#ifdef BOOST_UBLAS_USE_ITERATOR_BASE_TRAITS
#ifndef BOOST_UBLAS_NO_ITERATOR_BASE_TRAITS
public iterator_base_traits<typename V::iterator::iterator_category>::template
iterator_base<iterator, value_type>::type {
#else