Compare commits

..

68 Commits

Author SHA1 Message Date
cafa8de7a6 This commit was manufactured by cvs2svn to create branch 'named-args'.
[SVN r9294]
2001-02-20 16:01:02 +00:00
d22edf735a put policies type in private
[SVN r9290]
2001-02-20 16:00:21 +00:00
af8dd117d5 Rolled back reverse_iterator_pair_generator again, as it doesn't save typing on a conforming compiler
[SVN r9279]
2001-02-19 20:41:22 +00:00
149d07cda0 Fix missing comma bug
[SVN r9274]
2001-02-19 16:22:03 +00:00
e9d9bdbb10 Reinstated reverse_iterator_pair_generator
[SVN r9264]
2001-02-18 22:21:14 +00:00
8d8f828da5 changes to order of indirect_iterator_generator param list
[SVN r9246]
2001-02-17 22:03:06 +00:00
fc15f5f710 added Category parameter to the indirect iterator
[SVN r9240]
2001-02-17 19:59:54 +00:00
ef66d28b19 added "explicit" to iterator_adaptor constructor
[SVN r9234]
2001-02-17 01:44:41 +00:00
0c8d74863f Add an implicit conversion operator to operator_arrow_proxy as CW and BCC workarounds.
[SVN r9233]
2001-02-16 23:06:57 +00:00
1c73f1f2ae made filter_iterator_generator::policies_type public
[SVN r9230]
2001-02-16 21:27:26 +00:00
ee20a630dd Remove implication that a type generator may only generate a single type
[SVN r9221]
2001-02-16 05:24:45 +00:00
c2472221ef made the typedef policies_type public in iterator_adaptor
and private in filter_iterator_generator


[SVN r9205]
2001-02-15 06:07:00 +00:00
bf45977491 removed unnecessary typedefs from counting_iterator_traits
[SVN r9203]
2001-02-15 05:51:40 +00:00
1988994bd3 added dummy_constructor to dummyT so it can be used in concept archetypes
[SVN r9181]
2001-02-13 02:03:59 +00:00
5482763a93 added missing const qualifier
[SVN r9148]
2001-02-12 04:45:02 +00:00
2c2a3eab21 Use new iterator_adaptor interface, Fixes for Borland.
[SVN r9131]
2001-02-11 19:36:43 +00:00
dca20fae75 Use BOOST_STATIC_CONSTANT
[SVN r9129]
2001-02-11 19:33:47 +00:00
e3aaf2cc91 Switch to use of BOOST_STATIC_CONSTANT where possible
[SVN r9127]
2001-02-11 19:29:28 +00:00
ea4c7c7dd9 Removed workaround for older MIPSpro compiler. The workaround was
preventing the proper functionality of the underlying iterator being
carried forward into the iterator adaptor.

Also added is_bidirectional enum to avoid EDG compiler error.


[SVN r9123]
2001-02-11 18:57:31 +00:00
fd6ba58d5e Borland fixes up the wazoo. It finally works!
[SVN r9114]
2001-02-11 16:09:22 +00:00
268e70faa1 Reinstate one of John's fixes
[SVN r9113]
2001-02-11 16:06:12 +00:00
170b44763d Clean up after John Maddocks's (finally effective!) Borland fixes
[SVN r9111]
2001-02-11 14:07:11 +00:00
b2701f9f78 Borland compiler fixes
[SVN r9110]
2001-02-11 12:50:06 +00:00
ad4c5ab089 Use new iterator_adaptor<> interface
[SVN r9106]
2001-02-11 03:10:01 +00:00
c585adde71 Removed traits argument from iterator_adaptor<> and switched to explicit trait
specification for maximum ease-of-use.

Added comments to detail::iterator_defaults<>

Began using detail::iterator_defaults<> unconditionally for code clarity

Changed uses of `Iterator' to `Base' where non-iterators can be used.


[SVN r9104]
2001-02-11 03:05:50 +00:00
c5f24d0d72 A baby step that worked.
[SVN r9095]
2001-02-10 23:14:42 +00:00
dbb99b1cf3 Rolled in supposed Borland fixes from John Maddock, but not seeing any improvement yet
[SVN r9093]
2001-02-10 20:23:35 +00:00
be44a4714b Rolled in supposed Borland fixes from John Maddock, but not seeing any
improvement yet

Changed argument order to indirect_ generator, for convenience in the case of
input iterators (where Reference must be a value type).

Removed derivation of filter_iterator_policies from default_iterator_policies,
since the iterator category is likely to be reduced (we don't want to allow
illegal operations like decrement).

Support for a simpler filter iterator interface.


[SVN r9092]
2001-02-10 20:22:05 +00:00
e9f24023d4 completely removed constructor that was #if 0'd
[SVN r9076]
2001-02-10 17:57:51 +00:00
51616fa845 removed superfluous "typename"
[SVN r9068]
2001-02-10 09:34:19 +00:00
d7884b5613 *** empty log message ***
[SVN r9066]
2001-02-10 00:35:45 +00:00
15b5b66776 Improved interface to indirect_ and reverse_ iterators
[SVN r9065]
2001-02-10 00:26:55 +00:00
6f90982a45 roll back mistaken changes
[SVN r9062]
2001-02-09 21:04:09 +00:00
bfda34e9e0 try a better interface to indirect iterators
[SVN r9060]
2001-02-09 19:26:19 +00:00
5bfc03ed4a Cleaned up redundant test is_integral<T> || is_same<T,char> -> is_integral<T>
[SVN r9059]
2001-02-09 15:43:57 +00:00
490bee3a06 Factored out is_numeric computation. Borland still unhappy :(
[SVN r9057]
2001-02-09 15:21:02 +00:00
8174963a45 Rolled back Jeremy's new constructor for now; it was causing problems with counting_iterator_test
Attempted fix for Borland


[SVN r9055]
2001-02-09 15:17:17 +00:00
86e183c75e MSVC porting
[SVN r9052]
2001-02-09 05:44:13 +00:00
a94c9d0db2 Added iterator constructor to allow const adaptor
from non-const adaptee.

      Changed make_xxx to pass iterators by-value to
      get arrays converted to pointers.

      Removed InnerIterator template parameter from
      indirect_iterator_generator.

      Rearranged parameters for make_filter_iterator


[SVN r9050]
2001-02-09 05:26:01 +00:00
8a73dcd052 Fixed bidirectional iterator test so that --i is no longer a precondition.
[SVN r9048]
2001-02-09 04:29:11 +00:00
8496571204 Fold in Jeremy's improvement to make_reverse_iterator
[SVN r9042]
2001-02-09 03:29:11 +00:00
bafe0703a6 Beginning of a failed attempt to appease Borland
[SVN r9041]
2001-02-09 03:27:40 +00:00
b05b38810c just whitespace
[SVN r9030]
2001-02-08 04:45:18 +00:00
edf17ba001 put indirect_iterator_pair_generator back in
[SVN r9027]
2001-02-08 03:41:23 +00:00
ee9f140fae Removed all pair generator's except for projection and
some const adaptor generators.

Added make_xxx_iterator() helper functions for remaining
iterator adaptors.

Removed some traits template parameters where they
where no longer needed thanks to detail::iterator_traits.

Moved some of the compile-time logic into enums for
EDG compatibility.


[SVN r9024]
2001-02-08 03:07:33 +00:00
762e603013 rename counting_iterator() -> make_counting_iterator()
[SVN r9015]
2001-02-07 22:27:02 +00:00
6eeeb23332 Removed iterator_adaptor_pair_generator and
reverse_iterator_pair_generator (more such culling to come)

Improved comments

Changed all uses of std::iterator_traits as default arguments
to boost::detail::iterator_traits for improved utility in
non-generic contexts

Fixed naming convention of non-template parameter names


[SVN r9003]
2001-02-07 17:22:16 +00:00
07482538ed Produce operator-> proxy objects for InputIterators
Added static assertions to do some basic concept checks

Renamed single-type generators -> xxx_generator
Renamed const/nonconst iterator generators -> xxx_pair_generator

Added make_transform_iterator(iter, function)

The existence of boost::detail::iterator_traits allowed many
template arguments to be defaulted. Some arguments had to be
moved to accomplish it.


[SVN r8994]
2001-02-07 05:15:42 +00:00
d17e8dae9b codewarrior bug workaround
[SVN r8989]
2001-02-06 23:59:02 +00:00
5e1bc30db9 1st draft
[SVN r8939]
2001-02-05 05:39:43 +00:00
e8389d5f49 start of iterator concept tests
[SVN r8938]
2001-02-05 05:38:44 +00:00
332f18cf9f changed category for transform iterator traits to input iterator
[SVN r8936]
2001-02-04 23:45:57 +00:00
7aea7b7881 Factored counting_iterator stuff into boost/counting_iterator.hpp
[SVN r8935]
2001-02-04 23:37:01 +00:00
3e6796ab91 Fixed lvalue test
[SVN r8934]
2001-02-04 23:35:26 +00:00
893b5c0e25 Moved contents to boost/iterator_adaptors.hpp
[SVN r8933]
2001-02-04 23:34:29 +00:00
41c334d718 MWERKS bug workaround
[SVN r8931]
2001-02-04 20:35:23 +00:00
05336f45c4 Support for user-defined iterator categories
[SVN r8930]
2001-02-04 20:33:45 +00:00
90299982a6 Added counting_iterator_generator; updated comments
[SVN r8928]
2001-02-04 19:38:28 +00:00
93b54c15c8 Inital checkin
[SVN r8927]
2001-02-04 19:11:30 +00:00
25f9acabac corrected preconditions
[SVN r8925]
2001-02-04 19:00:03 +00:00
bb2ffadade Added lvalue test
[SVN r8922]
2001-02-04 18:25:55 +00:00
b6aa32721f Inital checkin
[SVN r8813]
2001-01-30 16:00:37 +00:00
8f41e88f85 fixed bug in assignment operator under VC++, which was the cause of
the access violation error in graph/test/graph.cpp. The root
  of this bug is in compressed pair, which VC++ has a hard time
  generating a correct operator= for.


[SVN r8767]
2001-01-25 04:57:16 +00:00
58b56fbabb Initial checkin
[SVN r8757]
2001-01-24 18:36:52 +00:00
9a4b0b576d added filter iterator
[SVN r8735]
2001-01-23 19:09:30 +00:00
c948483ec1 added some #ifdefs to prevent compilation of workaround code
[SVN r8688]
2001-01-21 20:28:02 +00:00
a31a89ae7d fixed some mwerks compiler errors
[SVN r8683]
2001-01-21 19:33:06 +00:00
b8ccd48fa3 Moved type<> to boost/type.hpp
[SVN r8678]
2001-01-21 06:20:20 +00:00
2 changed files with 1064 additions and 59 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,59 +0,0 @@
// (C) Copyright David Abrahams and Jeremy Siek 2000-2001. Permission to copy,
// use, modify, sell and distribute this software is granted provided this
// copyright notice appears in all copies. This software is provided "as is"
// without express or implied warranty, and with no claim as to its suitability
// for any purpose.
//
// Revision History:
// 04 Jan 2001 Factored counting_iterator stuff into
// boost/counting_iterator.hpp (David Abrahams)
#ifndef BOOST_INTEGER_RANGE_HPP_
#define BOOST_INTEGER_RANGE_HPP_
#include <boost/config.hpp>
#include <boost/counting_iterator.hpp>
namespace boost {
//=============================================================================
// Counting Iterator and Integer Range Class
template <class IntegerType>
struct integer_range {
typedef typename counting_iterator_generator<IntegerType>::type iterator;
typedef iterator const_iterator;
typedef IntegerType value_type;
typedef std::ptrdiff_t difference_type;
typedef IntegerType reference;
typedef IntegerType const_reference;
typedef const IntegerType* pointer;
typedef const IntegerType* const_pointer;
typedef IntegerType size_type;
integer_range(IntegerType start, IntegerType finish)
: m_start(start), m_finish(finish) { }
iterator begin() const { return iterator(m_start); }
iterator end() const { return iterator(m_finish); }
size_type size() const { return m_finish - m_start; }
bool empty() const { return m_finish == m_start; }
void swap(integer_range& x) {
std::swap(m_start, x.m_start);
std::swap(m_finish, x.m_finish);
}
protected:
IntegerType m_start, m_finish;
};
template <class IntegerType>
inline integer_range<IntegerType>
make_integer_range(IntegerType first, IntegerType last)
{
return integer_range<IntegerType>(first, last);
}
} // namespace boost
#endif // BOOST_INTEGER_RANGE_HPP_