1 #ifndef _theplu_yat_utility_concept_check_
2 #define _theplu_yat_utility_concept_check_
28 #include "iterator_traits.h"
29 #include "WeightedIteratorArchetype.h"
31 #include <boost/concept_archetype.hpp>
32 #include <boost/concept_check.hpp>
33 #include <boost/iterator/iterator_archetypes.hpp>
34 #include <boost/iterator/iterator_concepts.hpp>
62 #ifdef YAT_HAVE_BOOST_CONCEPT_WITH_CONSTRUCTOR
86 row_iter_ = t_.end_row(0);
88 col_iter_ = t_.end_column(0);
94 using boost_concepts::ReadableIterator;
95 BOOST_CONCEPT_ASSERT((ReadableIterator<const_iterator>));
96 BOOST_CONCEPT_ASSERT((ReadableIterator<const_row_iterator>));
97 BOOST_CONCEPT_ASSERT((ReadableIterator<const_column_iterator>));
101 void some_func(
size_t x)
const {}
145 row_iter_ = t_.end_row(0);
147 col_iter_ = t_.end_column(0);
150 using boost::Mutable_RandomAccessIterator;
151 BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<iterator>));
152 BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<row_iterator>));
153 BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<column_iterator>));
180 :
public boost::Assignable<T>
181 ,
public boost::EqualityComparable<T>
182 ,
public boost::DefaultConstructible<T>
189 typedef typename std::iterator_traits<T>::value_type
value_type;
193 typedef typename std::iterator_traits<T>::pointer
pointer;
195 typedef typename std::iterator_traits<T>::reference
reference;
234 typedef typename std::iterator_traits<T>::value_type
value_type;
241 BOOST_CONCEPT_ASSERT((boost_concepts::ReadableIterator<T>));
242 BOOST_CONCEPT_ASSERT((boost_concepts::SinglePassIterator<T>));
249 BOOST_CONCEPT_ASSERT((boost::Convertible<value_type, double>));
254 BOOST_CONCEPT_ASSERT((boost::Convertible<value_type, DataWeight>));
286 using boost::iterator_archetypes::readable_iterator_t;
287 using boost::forward_traversal_tag;
288 boost::iterator_archetype<double, readable_iterator_t,
289 forward_traversal_tag> unweighted;
293 d += distance_(unweighted, unweighted, unweighted);
294 d += distance_(unweighted, unweighted, weighted);
295 d += distance_(weighted, weighted, unweighted);
296 d += distance_(weighted, weighted, weighted);
301 void func(
double x) {}
weighted_iterator_traits< T >::type tag
tag
Definition: concept_check.h:232
detail::weighted_iterator_traits_detail< value >::type type
Definition: iterator_traits.h:114
Concept check for Trivial Iterator
Definition: concept_check.h:179
std::iterator_traits< T >::value_type value_type
value_type
Definition: concept_check.h:234
Concept check for Data Iterator.
Definition: concept_check.h:228
Concept check for Container2D.
Definition: concept_check.h:59
Definition: iterator_traits.h:47
T::const_reference const_reference
const_reference
Definition: concept_check.h:70
std::iterator_traits< T >::iterator_category iterator_category
iterator_category
Definition: concept_check.h:187
Concept check for Mutable Container2D.
Definition: concept_check.h:125
Definition: WeightedIteratorArchetype.h:133
Definition: iterator_traits.h:55
std::iterator_traits< T >::difference_type difference_type
difference_type
Definition: concept_check.h:191
T::const_iterator const_iterator
const_iterator
Definition: concept_check.h:72
BOOST_CONCEPT_USAGE(TrivialIterator)
function doing the concept test
Definition: concept_check.h:200
BOOST_CONCEPT_USAGE(Container2D)
function doing the concept test
Definition: concept_check.h:81
std::iterator_traits< T >::value_type value_type
value_type
Definition: concept_check.h:189
std::iterator_traits< T >::pointer pointer
pointer
Definition: concept_check.h:193
T::const_row_iterator const_row_iterator
const_row_iterator
Definition: concept_check.h:74
BOOST_CONCEPT_USAGE(Mutable_Container2D)
function doing the concept test
Definition: concept_check.h:140
T::iterator iterator
iterator
Definition: concept_check.h:131
T::row_iterator row_iterator
row_iterator
Definition: concept_check.h:133
std::iterator_traits< T >::reference reference
reference
Definition: concept_check.h:195
BOOST_CONCEPT_USAGE(DataIteratorConcept)
function doing the concept test
Definition: concept_check.h:239
Concept check for a Distance.
Definition: concept_check.h:278
T::reference reference
reference
Definition: concept_check.h:129
T::const_column_iterator const_column_iterator
const_column_iterator
Definition: concept_check.h:76
T::value_type value_type
value_type
Definition: concept_check.h:68
T::column_iterator column_iterator
column_iterator
Definition: concept_check.h:135
BOOST_CONCEPT_USAGE(DistanceConcept)
function doing the concept test
Definition: concept_check.h:284
Container2D(void)
Default constructor.
Definition: concept_check.h:64