necklace.cpp: In constructor 'Trie::Trie(Trie*, int, char, int)':
necklace.cpp:25:7: warning: 'Trie::pchar' will be initialized after [-Wreorder]
25 | char pchar;
| ^~~~~
necklace.cpp:24:8: warning: 'Trie* Trie::par' [-Wreorder]
24 | Trie *par;
| ^~~
necklace.cpp:27:2: warning: when initialized here [-Wreorder]
27 | Trie(Trie *par = nullptr, int l = 0, char pchar = 0, int s_pos = 0) : pchar(pchar), par(par), len(l), s_pos(s_pos) {
| ^~~~
necklace.cpp:24:8: warning: 'Trie::par' will be initialized after [-Wreorder]
24 | Trie *par;
| ^~~
necklace.cpp:22:6: warning: 'int Trie::len' [-Wreorder]
22 | int len;
| ^~~
necklace.cpp:27:2: warning: when initialized here [-Wreorder]
27 | Trie(Trie *par = nullptr, int l = 0, char pchar = 0, int s_pos = 0) : pchar(pchar), par(par), len(l), s_pos(s_pos) {
| ^~~~
necklace.cpp: In member function 'void Trie::build()':
necklace.cpp:44:30: warning: array subscript has type 'char' [-Wchar-subscripts]
44 | else prv = par->prv->trans[pchar];
| ^~~~~
necklace.cpp: In member function 'Trie* Trie::ins(char, int)':
necklace.cpp:50:13: warning: array subscript has type 'char' [-Wchar-subscripts]
50 | if (trans[c] == rt) trans[c] = new Trie(this, len+1, c, p);
| ^
necklace.cpp:50:29: warning: array subscript has type 'char' [-Wchar-subscripts]
50 | if (trans[c] == rt) trans[c] = new Trie(this, len+1, c, p);
| ^
necklace.cpp:51:16: warning: array subscript has type 'char' [-Wchar-subscripts]
51 | return trans[c];
| ^
necklace.cpp: In function 'int make_match(pii&)':
necklace.cpp:100:1: warning: control reaches end of non-void function [-Wreturn-type]
100 | }
| ^