#ifndef __BLOP_ARRAY_H__
#define __BLOP_ARRAY_H__
#include "var.h"
namespace blop
{
class array : public std::vector<blop::var>
{
private:
unsigned int iterator_;
static var outfs_;
static var infs_;
static array tmp_;
public:
array();
array(const array &);
array(unsigned int size);
static const var &outfs();
static void outfs(const var &);
static const var &infs();
static void infs(const var &);
var pop_back();
array &push_back(const array &);
void push_back(const var &);
const array &operator= (const array &rhs);
array &operator() (const var &v);
void push_front(const var &);
void push_front(const array &);
array &erase(unsigned int pos);
static array &make(const var &v);
static array &sequence(const var &step, const var &from, const var &to);
void replace(const var &from, const var &to);
void setfirst();
void setlast();
void set(int i);
int pos() const;
operator bool() const;
const array &operator++();
const array &operator--();
var &operator()();
const var &operator()() const;
void sort_s();
void sort_n();
};
array array_unique(const array &a);
}
std::ostream& operator<< (std::ostream &, const blop::array &);
#endif