/in/foo.cc: In member function 'void BigInt::multiplyByDigit(int)':
/in/foo.cc:23:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int i = 0; i < digits.size(); ++i) {
                         ~~^~~~~~~~~~~~~~~
/in/foo.cc: In member function 'void BigInt::add(const BigInt&)':
/in/foo.cc:40:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             int sum = (i < digits.size() ? digits[i] : 0) +
                        ~~^~~~~~~~~~~~~~~
/in/foo.cc:41:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                       (i < other.digits.size() ? other.digits[i] : 0) + carry;
                        ~~^~~~~~~~~~~~~~~~~~~~~
/in/foo.cc: In member function 'BigInt BigInt::powHelper(const BigInt&, int)':
/in/foo.cc:58:25: error: no match for 'operator*' (operand types are 'BigInt' and 'BigInt')
             return half * half;
                    ~~~~~^~~~~~
/in/foo.cc:61:25: error: no match for 'operator*' (operand types are 'const BigInt' and 'BigInt')
             return base * half * half;
                    ~~~~~^~~~~~