/* * Copyright Neal Becker 2009 * 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) * * Adapts an array defined by a pointer,length to boost::range interface */ #ifndef array_range_hpp #define array_range_hpp #include // size_t template struct array_range { typedef el_t* iterator; typedef el_t const* const_iterator; array_range (el_t* _data, size_t _size) : data (_data), size (_size) {} iterator begin() { return data; } const_iterator begin() const { return data; } iterator end() { return data+size; } const_iterator end() const { return data+size; } el_t* data; size_t size; }; // (Minor) convenience function to create array_range (create // array_range without needing to specify template parameter) template array_range inline make_array_range (el_t* data, size_t size) { return array_range (data, size); } #endif