15 typedef typename super::iter
iter;
16 typedef typename super::iteration
iteration;
18#include "../iter/narrIteration.hpp"
25 template <
typename... Es>
explicit tnarr(
const Es&... elems) {
26 static_assert(areBaseOfT<T, Es...>::value,
"some of type of args are not base of type 'T'");
27 add({(T*) &elems...});
33 me& operator=(
const me& rhs) =
default;
37 T& operator[](nidx n)
override {
return *get(n); }
41 ncnt len()
const override;
45 nbool in(nidx n)
const override;
49 using tarrayable<T>::get;
50 T* get(nidx n)
override;
54 using tarrayable<T>::set;
55 nbool set(
const iter& at,
const T& new1)
override;
56 nbool set(nidx n,
const T& new1)
override;
61 nbool add(
const iter& e,
const T& new1)
override;
62 nbool
add(nidx n,
const T& new1)
override;
63 void add(
const iter& here,
const iter& from,
const iter& to)
override;
69 nbool
del(
const iter& it)
override;
70 nbool
del(nidx n)
override;
75 clonable* clone()
const override {
return new me(*
this); }
77 void onCloneDeep(
const clonable& from)
override;
79 std::string asStr()
const;
82 iteration* _onMakeIteration(ncnt step, nbool isReversed)
const override;
88 std::vector<wrap> _vec;
92 typedef tnarr<node> narr;
Managed array container for byeol language.
Definition: arr.hpp:14
Interface for objects that can be cloned.
Definition: clonable.hpp:12
Deferred execution utility like defer keyword in other languages.
Definition: end.hpp:14
Definition: tarrayable.hpp:10
virtual nbool add(nidx n, const T &new1)=0
tnarr(const Es &... elems)
Definition: tnarr.hpp:25
nbool del(nidx n) override
nbool add(nidx n, const T &new1) override
Definition: tnucontainer.hpp:9
Strong reference smart pointer with strict type checking.
Definition: tstr.hpp:13
nbool del()
delete last element if exists.
Bidirectional iterator for key-value containers.
Definition: biter.hpp:9
Definition: biteration.hpp:5
Definition: narrIteration.hpp:7