X-Git-Url: https://mattmccutchen.net/bigint/bigint.git/blobdiff_plain/4a783bbb2e9486761bb9e9928a2184a9b42a6e39..2eeb8e77d77e2f7bd6cce05a96eed7985e5bb937:/BigUnsigned.hh diff --git a/BigUnsigned.hh b/BigUnsigned.hh index 683ac8b..f2b5787 100644 --- a/BigUnsigned.hh +++ b/BigUnsigned.hh @@ -77,8 +77,8 @@ public: short toShort () const; protected: // Helpers - template X convertToSignedPrimitive() const; - template X convertToPrimitive () const; + template X convertToSignedPrimitive(X dummyX) const; + template X convertToPrimitive (X dummyX) const; public: // BIT/BLOCK ACCESSORS @@ -237,7 +237,7 @@ public: // See BigInteger.cc. template - friend X convertBigUnsignedToPrimitiveAccess(const BigUnsigned &a); + friend X convertBigUnsignedToPrimitiveAccess(const BigUnsigned &a, X dummyX); }; /* Implementing the return-by-value and assignment operators in terms of the @@ -384,7 +384,7 @@ void BigUnsigned::initFromSignedPrimitive(X x) { * slower than the previous version with the masks, but it's much shorter and * clearer, which is the library's stated goal. */ template -X BigUnsigned::convertToPrimitive() const { +X BigUnsigned::convertToPrimitive(X /*dummyX*/) const { if (len == 0) // The number is zero; return zero. return 0; @@ -406,8 +406,8 @@ X BigUnsigned::convertToPrimitive() const { * one. (E.g., catch incorrect conversion of 2^31 to the long -2^31.) Again, * separated to avoid a g++ warning. */ template -X BigUnsigned::convertToSignedPrimitive() const { - X x = convertToPrimitive(); +X BigUnsigned::convertToSignedPrimitive(X dummyX) const { + X x = convertToPrimitive(dummyX); if (x >= 0) return x; else