嗯,这可能是一个很简单的警告,但我还没有弄清楚。不久前,我对我的uint256类进行了更新,之后,我收到了这样的警告:
base58.h:261:52: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘class uint256’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
memcpy(&id, &vchData[0], HASH_LEN_BYTES);这就是memcpy所在的函数:
bool GetKeyID(CKeyID &keyID) const {
if (!IsValid())
return false;
switch (nVersion) {
case PUBKEY_ADDRESS:
case PUBKEY_ADDRESS_TEST: {
uint256 id;
memcpy(&id, &vchData[0], HASH_LEN_BYTES);
keyID = CKeyID(id);
return true;
}
default: return false;
}
}这是我的uint256类:uint256.h
发布于 2021-03-12 08:47:43
发布于 2021-03-12 08:34:56
有两种解决办法:
在这种情况下,我怎样才能取代memcpy呢?
编写一个接受任何vchData作为参数的构造函数。
我怎样才能使这门课变得简单可循呢?
删除不可复制的复制构造函数和任何成员/基。
https://stackoverflow.com/questions/66596552
复制相似问题