40 using ListType = std::vector<SharedPtr<Variable>>;
41 using iterator = ListType::iterator;
42 using const_iterator = ListType::const_iterator;
47 void clear() { variables_.clear(); }
48 void append(
Variable* var) { variables_.push_back(var); }
49 void erase(
size_t index) { variables_.erase(variables_.begin() + index); }
50 void move(
size_t from,
size_t to);
51 size_t size()
const {
return variables_.size(); }
53 Variable* at(
size_t index) {
return variables_.at(index).get(); }
54 Variable* at(
size_t index)
const {
return variables_.at(index).get(); }
55 Variable* operator[](
size_t index) {
return variables_[index].get(); }
56 Variable* operator[](
size_t index)
const {
return variables_[index].get(); }
58 iterator begin() {
return variables_.begin(); }
59 iterator end() {
return variables_.end(); }
60 const_iterator begin()
const {
return variables_.begin(); }
61 const_iterator end()
const {
return variables_.end(); }