Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
4.9 kB · 118 lines
C++
at master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119////////////////////////////////////////////////////////////////////////////////// \file algorithm.hpp/// Contains range-based versions of the std algorithms///////////////////////////////////////////////////////////////////////////////// Copyright 2009 Neil Groves.// Distributed under 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)//
// Copyright 2006 Thorsten Ottosen.// Distributed under 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)//// Copyright 2004 Eric Niebler.// Distributed under 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)
#if defined(_MSC_VER) && _MSC_VER >= 1000 #pragma once#endif
#ifndef BOOST_RANGE_NUMERIC_HPP#define BOOST_RANGE_NUMERIC_HPP
#include <boost/config.hpp>#include <boost/assert.hpp>#include <boost/range/begin.hpp>#include <boost/range/end.hpp>#include <boost/range/concepts.hpp>#include <boost/range/distance.hpp>#include <numeric>
namespace boost{ template< class SinglePassRange, class Value > inline Value accumulate( const SinglePassRange& rng, Value init ) { BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange> )); return std::accumulate( boost::begin(rng), boost::end(rng), init ); }
template< class SinglePassRange, class Value, class BinaryOperation > inline Value accumulate( const SinglePassRange& rng, Value init, BinaryOperation op ) { BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange> )); return std::accumulate( boost::begin(rng), boost::end(rng), init, op ); }
template< class SinglePassRange1, class SinglePassRange2, class Value > inline Value inner_product( const SinglePassRange1& rng1, const SinglePassRange2& rng2, Value init ) { BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange1> )); BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange2> )); BOOST_ASSERT( boost::distance(rng2) >= boost::distance(rng1) ); return std::inner_product( boost::begin(rng1), boost::end(rng1), boost::begin(rng2), init ); }
template< class SinglePassRange1, class SinglePassRange2, class Value, class BinaryOperation1, class BinaryOperation2 > inline Value inner_product( const SinglePassRange1& rng1, const SinglePassRange2& rng2, Value init, BinaryOperation1 op1, BinaryOperation2 op2 ) { BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange1> )); BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange2> )); BOOST_ASSERT( boost::distance(rng2) >= boost::distance(rng1) );
return std::inner_product( boost::begin(rng1), boost::end(rng1), boost::begin(rng2), init, op1, op2 ); }
template< class SinglePassRange, class OutputIterator > inline OutputIterator partial_sum ( const SinglePassRange& rng, OutputIterator result ) { BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange> )); return std::partial_sum( boost::begin(rng), boost::end(rng), result ); }
template< class SinglePassRange, class OutputIterator, class BinaryOperation > inline OutputIterator partial_sum ( const SinglePassRange& rng, OutputIterator result, BinaryOperation op ) { BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange> )); return std::partial_sum( boost::begin(rng), boost::end(rng), result, op ); }
template< class SinglePassRange, class OutputIterator > inline OutputIterator adjacent_difference ( const SinglePassRange& rng, OutputIterator result ) { BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange> )); return std::adjacent_difference( boost::begin(rng), boost::end(rng), result ); }
template< class SinglePassRange, class OutputIterator, class BinaryOperation > inline OutputIterator adjacent_difference ( const SinglePassRange& rng, OutputIterator result, BinaryOperation op ) { BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<SinglePassRange> )); return std::adjacent_difference( boost::begin(rng), boost::end(rng), result, op ); }
}
#endif