mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-10 05:57:59 +01:00
Replace uint256 specific implementations of base_uint::GetHex() and base_uint::SetHex() with proper ones that don't depend on uint256 and replace template methods instantiations of base_uint with template class instantiation
This commit is contained in:
@@ -146,13 +146,21 @@ double base_uint<BITS>::getdouble() const
|
||||
template <unsigned int BITS>
|
||||
std::string base_uint<BITS>::GetHex() const
|
||||
{
|
||||
return ArithToUint256(*this).GetHex();
|
||||
base_blob<BITS> b;
|
||||
for (int x = 0; x < this->WIDTH; ++x) {
|
||||
WriteLE32(b.begin() + x*4, this->pn[x]);
|
||||
}
|
||||
return b.GetHex();
|
||||
}
|
||||
|
||||
template <unsigned int BITS>
|
||||
void base_uint<BITS>::SetHex(const char* psz)
|
||||
{
|
||||
*this = UintToArith256(uint256S(psz));
|
||||
base_blob<BITS> b;
|
||||
b.SetHex(psz);
|
||||
for (int x = 0; x < this->WIDTH; ++x) {
|
||||
this->pn[x] = ReadLE32(b.begin() + x*4);
|
||||
}
|
||||
}
|
||||
|
||||
template <unsigned int BITS>
|
||||
@@ -164,7 +172,7 @@ void base_uint<BITS>::SetHex(const std::string& str)
|
||||
template <unsigned int BITS>
|
||||
std::string base_uint<BITS>::ToString() const
|
||||
{
|
||||
return (GetHex());
|
||||
return GetHex();
|
||||
}
|
||||
|
||||
template <unsigned int BITS>
|
||||
@@ -183,20 +191,7 @@ unsigned int base_uint<BITS>::bits() const
|
||||
}
|
||||
|
||||
// Explicit instantiations for base_uint<256>
|
||||
template base_uint<256>::base_uint(const std::string&);
|
||||
template base_uint<256>& base_uint<256>::operator<<=(unsigned int);
|
||||
template base_uint<256>& base_uint<256>::operator>>=(unsigned int);
|
||||
template base_uint<256>& base_uint<256>::operator*=(uint32_t b32);
|
||||
template base_uint<256>& base_uint<256>::operator*=(const base_uint<256>& b);
|
||||
template base_uint<256>& base_uint<256>::operator/=(const base_uint<256>& b);
|
||||
template int base_uint<256>::CompareTo(const base_uint<256>&) const;
|
||||
template bool base_uint<256>::EqualTo(uint64_t) const;
|
||||
template double base_uint<256>::getdouble() const;
|
||||
template std::string base_uint<256>::GetHex() const;
|
||||
template std::string base_uint<256>::ToString() const;
|
||||
template void base_uint<256>::SetHex(const char*);
|
||||
template void base_uint<256>::SetHex(const std::string&);
|
||||
template unsigned int base_uint<256>::bits() const;
|
||||
template class base_uint<256>;
|
||||
|
||||
// This implementation directly uses shifts instead of going
|
||||
// through an intermediate MPI representation.
|
||||
|
||||
Reference in New Issue
Block a user