1 #ifndef _theplu_yat_utility_concept_check_
2 #define _theplu_yat_utility_concept_check_
28 #include "iterator_traits.h"
30 #include <boost/concept_archetype.hpp>
31 #include <boost/concept_check.hpp>
59 #ifdef YAT_HAVE_BOOST_CONCEPT_WITH_CONSTRUCTOR
83 row_iter_ = t_.end_row(0);
85 col_iter_ = t_.end_column(0);
90 BOOST_CONCEPT_ASSERT((boost::RandomAccessIterator<const_iterator>));
91 BOOST_CONCEPT_ASSERT((boost::RandomAccessIterator<const_row_iterator>));
92 BOOST_CONCEPT_ASSERT((boost::RandomAccessIterator<const_column_iterator>));
139 row_iter_ = t_.end_row(0);
141 col_iter_ = t_.end_column(0);
144 using boost::Mutable_RandomAccessIterator;
145 BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<iterator>));
146 BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<row_iterator>));
147 BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<column_iterator>));
174 :
public boost::Assignable<T>
175 ,
public boost::EqualityComparable<T>
176 ,
public boost::DefaultConstructible<T>
183 typedef typename std::iterator_traits<T>::value_type
value_type;
187 typedef typename std::iterator_traits<T>::pointer
pointer;
189 typedef typename std::iterator_traits<T>::reference
reference;
228 typedef typename std::iterator_traits<T>::value_type
value_type;
242 BOOST_CONCEPT_ASSERT((boost::Convertible<value_type, double>));
247 BOOST_CONCEPT_ASSERT((boost::Convertible<value_type, DataWeight>));
279 boost::random_access_iterator_archetype<double> unweighted;
280 boost::random_access_iterator_archetype<DataWeight> weighted;
282 d = distance_(unweighted, unweighted, unweighted);
283 d = distance_(unweighted, unweighted, weighted);
284 d = distance_(weighted, weighted, unweighted);
285 d = distance_(weighted, weighted, weighted);