Compare commits

..

3 Commits

Author SHA1 Message Date
cdd5bf9f94 merged from trunk
[SVN r49607]
2008-11-06 00:15:47 +00:00
4860918f80 merged from trunk
[SVN r49439]
2008-10-22 20:32:22 +00:00
28a7807e1e post-review proto version
[SVN r44061]
2008-04-05 18:00:00 +00:00
8 changed files with 69 additions and 45 deletions

24
CMakeLists.txt Normal file
View File

@ -0,0 +1,24 @@
#----------------------------------------------------------------------------
# This file was automatically generated from the original CMakeLists.txt file
# Add a variable to hold the headers for the library
set (lib_headers
iterator.hpp
iterator
)
# Add a library target to the build system
boost_library_project(
iterator
# SRCDIRS
TESTDIRS test
HEADERS ${lib_headers}
# DOCDIRS
DESCRIPTION "A system of concepts which extend the C++ standard iterator requirementsand a framework of components for building iterators based on these extended concepts and includes several useful iterator adaptors."
MODULARIZED
AUTHORS "David Abrahams <dave -at- boostpro.com>"
"Jeremy Siek <jeremy.siek -at- gmail.com>"
"Thomas Witt <witt - at - acm.org>"
# MAINTAINERS
)

View File

@ -16,7 +16,5 @@ boostbook standalone
<xsl:param>toc.max.depth=3
<xsl:param>toc.section.depth=3
<xsl:param>chunk.section.depth=4
<format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/iterator/doc
;

View File

@ -105,7 +105,6 @@ namespace boost
typedef typename remove_const<ValueParam>::type value_type;
// Not the real associated pointer type
typedef typename mpl::eval_if<
boost::detail::iterator_writability_disabled<ValueParam,Reference>
, add_pointer<const value_type>
@ -618,12 +617,6 @@ namespace boost
Value, CategoryOrTraversal, Reference, Difference
> associated_types;
typedef boost::detail::operator_arrow_result<
typename associated_types::value_type
, Reference
, typename associated_types::pointer
> pointer_;
protected:
// For use by derived classes
typedef iterator_facade<Derived,Value,CategoryOrTraversal,Reference,Difference> iterator_facade_;
@ -633,9 +626,7 @@ namespace boost
typedef typename associated_types::value_type value_type;
typedef Reference reference;
typedef Difference difference_type;
typedef typename pointer_::type pointer;
typedef typename associated_types::pointer pointer;
typedef typename associated_types::iterator_category iterator_category;
reference operator*() const
@ -643,9 +634,18 @@ namespace boost
return iterator_core_access::dereference(this->derived());
}
pointer operator->() const
typename boost::detail::operator_arrow_result<
value_type
, reference
, pointer
>::type
operator->() const
{
return pointer_::make(*this->derived());
return boost::detail::operator_arrow_result<
value_type
, reference
, pointer
>::make(*this->derived());
}
typename boost::detail::operator_brackets_result<Derived,Value,reference>::type

View File

@ -357,7 +357,7 @@ namespace boost {
{
typedef typename tuple_impl_specific::tuple_meta_transform<
IteratorTuple
, pure_traversal_tag<iterator_traversal<> >
, iterator_traversal<>
>::type tuple_of_traversal_tags;
typedef typename tuple_impl_specific::tuple_meta_accumulate<

1
module.cmake Normal file
View File

@ -0,0 +1 @@
boost_module(iterator DEPENDS config mpl type_traits function)

31
test/CMakeLists.txt Normal file
View File

@ -0,0 +1,31 @@
# These first two tests will run last, and are expected to fail
# for many less-capable compilers.
boost_test_compile_fail(interoperable_fail)
# test uses expected success, so that we catch unrelated
# compilation problems.
boost_test_run(is_convertible_fail)
boost_test_run(zip_iterator_test)
# These tests should work for just about everything.
boost_test_compile(is_lvalue_iterator)
boost_test_compile(is_readable_iterator)
boost_test_compile(pointee)
boost_test_run(unit_tests)
boost_test_run(concept_tests)
boost_test_run(iterator_adaptor_cc)
boost_test_run(iterator_adaptor_test)
boost_test_compile(iterator_archetype_cc)
boost_test_compile_fail(iter_archetype_default_ctor)
boost_test_compile_fail(lvalue_concept_fail)
boost_test_run(transform_iterator_test)
boost_test_run(indirect_iterator_test)
boost_test_compile(indirect_iter_member_types)
boost_test_run(filter_iterator_test)
boost_test_run(iterator_facade)
boost_test_run(reverse_iterator_test)
boost_test_run(counting_iterator_test)
boost_test_run(interoperable)
boost_test_run(iterator_traits_test)
boost_test_run(permutation_iterator_test)

View File

@ -87,10 +87,6 @@ struct input_iter
}
};
template <class T, class U>
void same_type(U const&)
{ BOOST_MPL_ASSERT((boost::is_same<T,U>)); }
int main()
{
int state = 0;
@ -105,8 +101,6 @@ int main()
input_iter p;
(*p).mutator();
p->mutator();
same_type<input_iter::pointer>(p.operator->());
return boost::report_errors();
}

View File

@ -46,7 +46,6 @@
#include <vector>
#include <list>
#include <set>
#include <string>
#include <functional>
#include <boost/tuple/tuple.hpp>
#include <boost/iterator/transform_iterator.hpp>
@ -61,27 +60,6 @@ struct pure_traversal
typename boost::iterator_traversal<It>::type
>
{};
/// Tests for https://svn.boost.org/trac/boost/ticket/1517
int to_value(int const &v)
{
return v;
}
void category_test()
{
std::list<int> rng1;
std::string rng2;
boost::make_zip_iterator(
boost::make_tuple(
boost::make_transform_iterator(rng1.begin(), &to_value), // BidirectionalInput
rng2.begin() // RandomAccess
)
);
}
///
/////////////////////////////////////////////////////////////////////////////
//
@ -92,8 +70,6 @@ void category_test()
int main( void )
{
category_test();
std::cout << "\n"
<< "***********************************************\n"
<< "* *\n"