diff -r 000000000000 -r e4d67989cc36 ossrv_pub/boost_apis/boost/last_value.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ossrv_pub/boost_apis/boost/last_value.hpp Tue Feb 02 02:01:42 2010 +0200 @@ -0,0 +1,48 @@ +// last_value function object (documented as part of Boost.Signals) + +// Copyright Douglas Gregor 2001-2003. 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/signals + +#ifndef BOOST_LAST_VALUE_HPP +#define BOOST_LAST_VALUE_HPP + +#include + +namespace boost { + template + struct last_value { + typedef T result_type; + + template + T operator()(InputIterator first, InputIterator last) const + { + assert(first != last); + T value = *first++; + while (first != last) + value = *first++; + return value; + } + }; + + template<> + struct last_value { + struct unusable {}; + + public: + typedef unusable result_type; + + template + result_type + operator()(InputIterator first, InputIterator last) const + { + while (first != last) + *first++; + return result_type(); + } + }; +} +#endif // BOOST_SIGNALS_LAST_VALUE_HPP