removed ReadableLvalue and WritableLvalue, added Lvalue

[SVN r22005]
This commit is contained in:
Jeremy Siek
2004-01-27 18:14:48 +00:00
parent 506517191c
commit 19d339c916
6 changed files with 35 additions and 38 deletions

View File

@ -98,38 +98,17 @@ namespace boost_concepts {
};
template <typename Iterator>
class ReadableLvalueIteratorConcept
class LvalueIteratorConcept
{
public:
typedef typename boost::detail::iterator_traits<Iterator>::value_type value_type;
void constraints()
{
boost::function_requires< ReadableIteratorConcept<Iterator> >();
const value_type& v = *i;
boost::ignore_unused_variable_warning(v);
}
const value_type& r = *i;
}
Iterator i;
};
template <typename Iterator>
class WritableLvalueIteratorConcept {
public:
typedef typename boost::detail::iterator_traits<Iterator>::value_type value_type;
typedef typename boost::detail::iterator_traits<Iterator>::reference reference;
void constraints() {
boost::function_requires<
ReadableLvalueIteratorConcept<Iterator> >();
boost::function_requires<
WritableIteratorConcept<Iterator, value_type> >();
boost::function_requires<
SwappableIteratorConcept<Iterator> >();
BOOST_STATIC_ASSERT((boost::is_same<reference, value_type&>::value));
}
};
//===========================================================================
// Iterator Traversal Concepts