로딩중...
검색중...
일치하는것 없음
tnarr.hpp
이 파일의 문서화 페이지로 가기
1
2#pragma once
3
6
7namespace by {
8
9 template <typename T, typename TACTIC = strTactic> class tnarr: public tnucontainer<T>, public tarrayable<T> {
11
12 public:
13 typedef tstr<T, TACTIC> wrap;
14 typedef typename super::iter iter;
15 typedef typename super::iteration iteration;
17 friend class narrIteration;
18 friend class arr; // for redirection to `_onMakeIteration()`
19
20 public:
21 tnarr();
22
27 template <typename... Es> explicit tnarr(const Es&... elems) {
28 static_assert(areBaseOfT<T, Es...>::value, "some of type of args are not base of type 'T'");
29 add({(T*) &elems...});
30 }
31
32 tnarr(const me& rhs);
33
34 public:
35 me& operator=(const me& rhs) = default;
36
37 using tarrayable<T>::operator[];
38
39 T& operator[](nidx n) override { return *get(n); }
40
41 public:
42 // len:
43 ncnt len() const override;
44
45 // has:
46 using super::in;
47 nbool in(nidx n) const override;
48
49 // get:
50 using super::get;
51 using tarrayable<T>::get;
52 T* get(nidx n) override;
53
54 // set:
55 using super::set;
56 using tarrayable<T>::set;
57 nbool set(const iter& at, const T& new1) override;
58 nbool set(nidx n, const T& new1) override;
59
60 // add:
61 using super::add;
62 using tarrayable<T>::add;
63 nbool add(const iter& e, const T& new1) override;
64 nbool add(nidx n, const T& new1) override;
65 void add(const iter& here, const iter& from, const iter& to) override;
66
67 // del:
68 using super::del;
69 using tarrayable<T>::del;
70 nbool del(const iter& from, const iter& end) override;
71 nbool del(const iter& it) override;
72 nbool del(nidx n) override;
73
74 // etc:
75 void rel() override;
76
77 clonable* clone() const override { return new me(*this); }
78
79 void onCloneDeep(const clonable& from) override;
80
81 std::string asStr() const;
82
83 protected:
84 iteration* _onMakeIteration(ncnt step, nbool isReversed) const override;
85
86 private:
87 narrIteration* _getIteration(const iter& it);
88
89 private:
90 std::vector<wrap> _vec;
91 };
92
93 class node;
94 typedef tnarr<node> narr;
95} // namespace by
Scripted array container for byeol language
Definition arr.hpp:15
Definition tarrayable.hpp:11
Definition tnarr.hpp:9
tnarr(const Es &... elems)
Definition tnarr.hpp:27
nbool del(nidx n) override
nbool add(nidx n, const T &new1) override
Definition tnucontainer.hpp:9
Bidirectional iterator for key-value containers
Definition biter.hpp:10
Definition biteration.hpp:5
Definition narrIteration.hpp:8
Array iteration implementation
to Top