// Description: Bounded array types
#ifndef PASTELSYS_BOUNDED_ARRAY_FWD_H
#define PASTELSYS_BOUNDED_ARRAY_FWD_H
#include "pastel/sys/mytypes.h"
namespace Pastel
{
    template <typename, template <typename> class>
    class BoundedArray;
    namespace BoundedArray_
    {
        template <typename>
        class Iterator;
    }
    template <typename Settings>
    class BoundedArray_Fwd
    {
    public:
        using Fwd = Settings;
        PASTEL_FWD(Element);
        static constexpr integer N = Settings::N;
        using Iterator = BoundedArray_::Iterator<Element>;
        using ConstIterator = BoundedArray_::Iterator<const Element>;
        using Range = boost::iterator_range<Iterator>;
        using ConstRange = boost::iterator_range<ConstIterator>;
        using iterator = Iterator;
        using const_iterator = ConstIterator;
    };
}
#endif