Show
Ignore:
Timestamp:
07/02/08 06:39:29 (5 months ago)
Author:
dumas
Message:

added Generic trait for iterators without value_type (typically X*)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/linbox/linbox/matrix/sparse.h

    r2814 r2990  
    557557                { return ConstRawIterator (_A.end (), _A.back ().end (), _A.end ()); } 
    558558 
     559 
     560 
     561        /* Generic trait for iterators without type */ 
     562    template<typename U> 
     563    struct IteratorValueType { 
     564        typedef typename U::value_type value_type; 
     565    }; 
     566     
     567    template<typename X> 
     568    struct IteratorValueType<const X*> { 
     569        typedef X value_type; 
     570    }; 
     571 
     572        /* Generic trait for iterators without type */ 
     573 
     574 
     575 
    559576        template <class RepIterator, class RowIdxIterator> 
    560577        class _RawIndexedIterator 
     
    563580//              // typedef std::pair<size_t, size_t> value_type; 
    564581//              typedef typename RowIdxIterator/*::value_type*/::second_type value_type; 
    565                 typedef typename RowIdxIterator::value_type::second_type value_type; 
     582//              typedef typename RowIdxIterator::value_type::second_type value_type; 
     583            typedef typename IteratorValueType< RowIdxIterator >::value_type::second_type value_type; 
    566584 
    567585                _RawIndexedIterator (size_t idx, const RepIterator &i, const RowIdxIterator &j, const RepIterator &A_end)