foo.cc: In function ‘void build()’:
foo.cc:65:31: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
65 | for( int i=0;i<=temp.size();++i)
| ~^~~~~~~~~~~~~
foo.cc:68:39: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
68 | int r=temp[(i>temp.size()-1?0:i)]-'0';
| ~^~~~~~~~~~~~~~
foo.cc:74:73: warning: comparison of integer expressions of different signedness: ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} and ‘long long int’ [-Wsign-compare]
74 | if(new_string.empty()||new_string.size()>max_len)//||new_string.size()!=temp.size()+1)
| ~~~~~~~~~~~~~~~~~^~~~~~~~
foo.cc:88:29: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
88 | if(i==temp.size())
| ~^~~~~~~~~~~~~
foo.cc:90:41: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
90 | for( int j=i+1;j<temp.size();++j)
| ~^~~~~~~~~~~~
foo.cc:94:46: warning: suggest parentheses around ‘+’ inside ‘<<’ [-Wparentheses]
94 | int wt=(x&y)+(x^y)<<1;
| ~~~~~^~~~~~
foo.cc:117:49: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
117 | int r=temp[(i+1>temp.size()-1?0:i+1)]-'0';
| ~~~^~~~~~~~~~~~~~