/in/foo.cc: In constructor 'Tree::Node::Node(int, int, Tree::Node*, Tree::Node*)':
/in/foo.cc:14:15: warning: 'Tree::Node::r' will be initialized after [-Wreorder]
int l,r;
^
/in/foo.cc:13:15: warning: 'Tree::Node* Tree::Node::lson' [-Wreorder]
Node *lson,*rson;
^~~~
/in/foo.cc:17:9: warning: when initialized here [-Wreorder]
Node(int l,int r,Node *lson,Node *rson):l(l),r(r),lson(lson),rson(rson){}
^~~~
/in/foo.cc: In member function 'void Tree::Node::query(int, int, int&, int&, int&, int&)':
/in/foo.cc:51:32: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
int mid=this->l+this->r>>1;
~~~~~~~^~~~~~~~
/in/foo.cc: In member function 'Tree::Node* Tree::build(int, int)':
/in/foo.cc:89:43: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
else return new Node(l,r,build(l,l+r>>1),build((l+r>>1)+1,r));
~^~
/in/foo.cc:89:58: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
else return new Node(l,r,build(l,l+r>>1),build((l+r>>1)+1,r));
~^~