forked from boostorg/concept_check
Added missing value_type to InputIteratorConcept
Improved idiomatic fake_sort [SVN r33889]
This commit is contained in:
@@ -8,15 +8,20 @@
|
||||
# include <boost/concept_check/where.hpp>
|
||||
# include <boost/concept_check.hpp>
|
||||
|
||||
template<typename RanIter>
|
||||
BOOST_CONCEPT_WHERE(
|
||||
((boost::Mutable_RandomAccessIteratorConcept<RanIter>))
|
||||
((boost::LessThanComparableConcept<typename boost::detail::iterator_traits<RanIter>::value_type>))
|
||||
|
||||
, (void))
|
||||
fake_sort(RanIter,RanIter)
|
||||
namespace fake
|
||||
{
|
||||
using namespace boost;
|
||||
|
||||
template<typename RanIter>
|
||||
BOOST_CONCEPT_WHERE(
|
||||
((Mutable_RandomAccessIteratorConcept<RanIter>))
|
||||
((LessThanComparableConcept<typename Mutable_RandomAccessIteratorConcept<RanIter>::value_type>))
|
||||
|
||||
, (void))
|
||||
sort(RanIter,RanIter)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // BOOST_LIBS_CONCEPT_CHECK_FAKE_SORT_DWA2006430_HPP
|
||||
|
@@ -462,9 +462,8 @@ namespace boost
|
||||
: AssignableConcept<TT>
|
||||
, EqualityComparableConcept<TT>
|
||||
{
|
||||
// require iterator_traits typedef's
|
||||
typedef typename boost::detail::iterator_traits<TT>::value_type value_type;
|
||||
typedef typename boost::detail::iterator_traits<TT>::difference_type difference_type;
|
||||
// Hmm, the following is a bit fragile
|
||||
typedef typename boost::detail::iterator_traits<TT>::reference reference;
|
||||
typedef typename boost::detail::iterator_traits<TT>::pointer pointer;
|
||||
typedef typename boost::detail::iterator_traits<TT>::iterator_category iterator_category;
|
||||
@@ -591,9 +590,10 @@ namespace boost
|
||||
: RandomAccessIteratorConcept<TT>
|
||||
, Mutable_BidirectionalIteratorConcept<TT>
|
||||
{
|
||||
~Mutable_RandomAccessIteratorConcept() {
|
||||
i[n] = *i; // require element access and assignment
|
||||
}
|
||||
~Mutable_RandomAccessIteratorConcept()
|
||||
{
|
||||
i[n] = *i; // require element access and assignment
|
||||
}
|
||||
private:
|
||||
TT i;
|
||||
typename boost::detail::iterator_traits<TT>::difference_type n;
|
||||
|
@@ -8,6 +8,6 @@
|
||||
int main()
|
||||
{
|
||||
std::vector<int> v;
|
||||
fake_sort(v.begin(), v.end());
|
||||
fake::sort(v.begin(), v.end());
|
||||
return 0;
|
||||
}
|
||||
|
@@ -8,6 +8,6 @@
|
||||
int main()
|
||||
{
|
||||
std::list<int> v;
|
||||
fake_sort(v.begin(), v.end());
|
||||
fake::sort(v.begin(), v.end());
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user