Compiler output
prog.cpp: In function 'void add(int, int)':
prog.cpp:14:25: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
#define zeros(x) x^(x-1)&x
^
prog.cpp:24:31: note: in expansion of macro 'zeros'
for (int i=poz;i<=Nmax;i+=zeros(i))
^
prog.cpp: In function 'int sum(int)':
prog.cpp:14:25: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
#define zeros(x) x^(x-1)&x
^
prog.cpp:30:28: note: in expansion of macro 'zeros'
for (int i=poz;i>=1;i-=zeros(i))
^