Mercurial > hg > vamp-build-and-test
annotate DEPENDENCIES/generic/include/boost/random/detail/iterator_mixin.hpp @ 133:4acb5d8d80b6 tip
Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author | Chris Cannam |
---|---|
date | Tue, 30 Jul 2019 12:25:44 +0100 |
parents | 2665513ce2d3 |
children |
rev | line source |
---|---|
Chris@16 | 1 /* boost random/detail/iterator_mixin.hpp header file |
Chris@16 | 2 * |
Chris@16 | 3 * Copyright Jens Maurer 2000-2001 |
Chris@16 | 4 * Distributed under the Boost Software License, Version 1.0. (See |
Chris@16 | 5 * accompanying file LICENSE_1_0.txt or copy at |
Chris@16 | 6 * http://www.boost.org/LICENSE_1_0.txt) |
Chris@16 | 7 * |
Chris@16 | 8 * See http://www.boost.org for most recent version including documentation. |
Chris@16 | 9 * |
Chris@16 | 10 * Revision history |
Chris@16 | 11 */ |
Chris@16 | 12 |
Chris@16 | 13 #ifndef BOOST_ITERATOR_MIXIN_HPP |
Chris@16 | 14 #define BOOST_ITERATOR_MIXIN_HPP |
Chris@16 | 15 |
Chris@16 | 16 #include <boost/operators.hpp> |
Chris@16 | 17 |
Chris@16 | 18 namespace boost { |
Chris@16 | 19 |
Chris@16 | 20 // must be in boost namespace, otherwise the inline friend trick fails |
Chris@16 | 21 template<class Generator, class ResultType> |
Chris@16 | 22 class generator_iterator_mixin_adapter |
Chris@16 | 23 : incrementable<Generator>, equality_comparable<Generator> |
Chris@16 | 24 { |
Chris@16 | 25 public: |
Chris@16 | 26 typedef std::input_iterator_tag iterator_category; |
Chris@16 | 27 typedef ResultType value_type; |
Chris@16 | 28 typedef std::ptrdiff_t difference_type; |
Chris@16 | 29 typedef const value_type * pointer; |
Chris@16 | 30 typedef const value_type & reference; |
Chris@16 | 31 Generator& operator++() { v = cast()(); return cast(); } |
Chris@16 | 32 const value_type& operator*() const { return v; } |
Chris@16 | 33 |
Chris@16 | 34 protected: |
Chris@16 | 35 // instantiate from derived classes only |
Chris@16 | 36 generator_iterator_mixin_adapter() { } |
Chris@16 | 37 void iterator_init() { operator++(); } |
Chris@16 | 38 private: |
Chris@16 | 39 Generator & cast() { return static_cast<Generator&>(*this); } |
Chris@16 | 40 value_type v; |
Chris@16 | 41 }; |
Chris@16 | 42 |
Chris@16 | 43 } // namespace boost |
Chris@16 | 44 |
Chris@16 | 45 #endif // BOOST_ITERATOR_MIXIN_HPP |