transfer.cpp: In function 'vi get_attachment(vi)':
transfer.cpp:8:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
8 | for(int i = 0; i < sz(v); i++) if(v[i]) x^=i+1;
| ^
transfer.cpp:9:19: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare]
9 | for(int i = 0; i < __lg(sz(v)+1); i++) a.push_back((x>>i)&1), y^=(x>>i)&1;
| ~~^~~~~~~~~~~~~~~
transfer.cpp: In function 'vi retrieve(vi)':
transfer.cpp:17:33: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
17 | if(v.back()==y and x^xx) v[x^xx-1]^=1; return vi(begin(v),begin(v)+n);
| ~~^~
transfer.cpp:17:2: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
17 | if(v.back()==y and x^xx) v[x^xx-1]^=1; return vi(begin(v),begin(v)+n);
| ^~
transfer.cpp:17:41: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
17 | if(v.back()==y and x^xx) v[x^xx-1]^=1; return vi(begin(v),begin(v)+n);
| ^~~~~~