diff options
Diffstat (limited to '3rdParty/Boost')
-rw-r--r-- | 3rdParty/Boost/src/boost/range/adaptor/reversed.hpp | 103 | ||||
-rwxr-xr-x | 3rdParty/Boost/update.sh | 4 |
2 files changed, 104 insertions, 3 deletions
diff --git a/3rdParty/Boost/src/boost/range/adaptor/reversed.hpp b/3rdParty/Boost/src/boost/range/adaptor/reversed.hpp new file mode 100644 index 0000000..944fbff --- /dev/null +++ b/3rdParty/Boost/src/boost/range/adaptor/reversed.hpp @@ -0,0 +1,103 @@ +// Boost.Range library +// +// Copyright Thorsten Ottosen, Neil Groves 2006 - 2008. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/range/ +// + +#ifndef BOOST_RANGE_ADAPTOR_REVERSED_HPP +#define BOOST_RANGE_ADAPTOR_REVERSED_HPP + +#include <boost/range/iterator_range.hpp> +#include <boost/range/concepts.hpp> +#include <boost/iterator/reverse_iterator.hpp> + +namespace boost +{ + namespace range_detail + { + template< class R > + struct reversed_range : + public boost::iterator_range< + boost::reverse_iterator< + BOOST_DEDUCED_TYPENAME range_iterator<R>::type + > + > + { + private: + typedef boost::iterator_range< + boost::reverse_iterator< + BOOST_DEDUCED_TYPENAME range_iterator<R>::type + > + > + base; + + public: + typedef boost::reverse_iterator<BOOST_DEDUCED_TYPENAME range_iterator<R>::type> iterator; + + explicit reversed_range( R& r ) + : base( iterator(boost::end(r)), iterator(boost::begin(r)) ) + { } + }; + + struct reverse_forwarder {}; + + template< class BidirectionalRange > + inline reversed_range<BidirectionalRange> + operator|( BidirectionalRange& r, reverse_forwarder ) + { + BOOST_RANGE_CONCEPT_ASSERT(( + BidirectionalRangeConcept<BidirectionalRange>)); + + return reversed_range<BidirectionalRange>( r ); + } + + template< class BidirectionalRange > + inline reversed_range<const BidirectionalRange> + operator|( const BidirectionalRange& r, reverse_forwarder ) + { + BOOST_RANGE_CONCEPT_ASSERT(( + BidirectionalRangeConcept<const BidirectionalRange>)); + + return reversed_range<const BidirectionalRange>( r ); + } + + } // 'range_detail' + + using range_detail::reversed_range; + + namespace adaptors + { + namespace + { + const range_detail::reverse_forwarder reversed = + range_detail::reverse_forwarder(); + } + + template<class BidirectionalRange> + inline reversed_range<BidirectionalRange> + reverse(BidirectionalRange& rng) + { + BOOST_RANGE_CONCEPT_ASSERT(( + BidirectionalRangeConcept<BidirectionalRange>)); + + return reversed_range<BidirectionalRange>(rng); + } + + template<class BidirectionalRange> + inline reversed_range<const BidirectionalRange> + reverse(const BidirectionalRange& rng) + { + BOOST_RANGE_CONCEPT_ASSERT(( + BidirectionalRangeConcept<const BidirectionalRange>)); + + return reversed_range<const BidirectionalRange>(rng); + } + } // 'adaptors' + +} // 'boost' + +#endif diff --git a/3rdParty/Boost/update.sh b/3rdParty/Boost/update.sh index 44114ed..afa7722 100755 --- a/3rdParty/Boost/update.sh +++ b/3rdParty/Boost/update.sh @@ -1,86 +1,84 @@ #!/usr/bin/env bash set -e if [ -z "$1" ]; then echo "Please specify the location of the boost source tree" exit -1 fi TARGET_DIR=src if [ ! -d "$TARGET_DIR" ]; then mkdir $TARGET_DIR fi ./bcp --boost="$1" \ tools/bcp \ algorithm/string.hpp \ archive/text_iarchive.hpp \ archive/text_oarchive.hpp \ asio.hpp \ assign/list_of.hpp \ bind.hpp \ cast.hpp \ date_time/posix_time/posix_time.hpp \ date_time/posix_time/time_serialize.hpp \ date_time/local_time/local_time.hpp \ date_time/c_local_time_adjustor.hpp \ date_time/gregorian/gregorian_types.hpp \ - foreach.hpp \ filesystem.hpp \ filesystem/fstream.hpp \ format.hpp \ lambda/lambda.hpp \ lambda/bind.hpp \ logic/tribool.hpp \ noncopyable.hpp \ numeric/conversion/cast.hpp \ optional.hpp \ program_options.hpp \ random/mersenne_twister.hpp \ random/variate_generator.hpp \ random/uniform_int.hpp \ regex.hpp \ scope_exit.hpp \ - shared_ptr.hpp \ - smart_ptr/make_shared.hpp \ serialization/serialization.hpp \ serialization/vector.hpp \ serialization/list.hpp \ serialization/map.hpp \ serialization/shared_ptr.hpp \ serialization/string.hpp \ serialization/set.hpp \ serialization/version.hpp \ serialization/split_member.hpp \ serialization/optional.hpp \ signals2.hpp \ thread.hpp \ unordered_map.hpp \ uuid/uuid.hpp \ uuid/uuid_io.hpp \ uuid/uuid_generators.hpp \ variant.hpp \ spirit/include/lex_lexertl.hpp \ typeof/incr_registration_group.hpp \ atomic \ system/src/error_code.cpp \ phoenix/support/detail/iterate.hpp \ type_traits.hpp \ + range/adaptor/reversed.hpp \ $TARGET_DIR cp $1/LICENSE_1_0.txt $TARGET_DIR rm -rf $TARGET_DIR/libs/config rm -rf $TARGET_DIR/libs/smart_ptr LIBS="date_time regex system thread signals2 filesystem program_options serialization archive atomic" for lib in $LIBS; do rm -rf $TARGET_DIR/libs/$lib/build $TARGET_DIR/libs/$lib/*.doc $TARGET_DIR/libs/$lib/src/*.doc $TARGET_DIR/libs/$lib/src/CMakeLists.txt $TARGET_DIR/libs/$lib/test done rm -rf $TARGET_DIR/tools/bcp/*.html $TARGET_DIR/libs/test $TARGET_DIR/doc $TARGET_DIR/boost.png $TARGET_DIR/boost/test $TARGET_DIR/tools/bcp/Jamfile.v2 $TARGET_DIR/tools/bcp/doc $TARGET_DIR/tools/bcp/test $TARGET_DIR/Jamroot mv $TARGET_DIR/libs/filesystem/src/utf8_codecvt_facet.cpp $TARGET_DIR/libs/filesystem/src/filesystem_utf8_codecvt_facet.cpp mv $TARGET_DIR/libs/program_options/src/utf8_codecvt_facet.cpp $TARGET_DIR/libs/program_options/src/program_options_utf8_codecvt_facet.cpp for diff in *.diff; do patch -p3 < $diff done |