Является ли первое назначение temp (1) бесполезным (ну, кроме объявления типа)? Я думаю, что второе назначение - это просто переписывание указателя temp на key_record
.Простой пояснение указателя/указателя на C++
void store_key(const key_data& key)
{
owallet_key_record key_record = ...
key_data& temp = *key_record; // 1
temp = key;
}
EDIT: ссылки, https://github.com/BitShares/bitshares/blob/v0.4.28-dev1/libraries/wallet/wallet_db.cpp#L555-L556
Обратите внимание, temp
снова не используется. Кроме того, этот метод используется несколько раз в файле в этом же шаблоне, поэтому он должен быть преднамеренным.
Как литой? 'key_data & key' также является допустимым' owallet_key_record' – jcalfee314
. Разработчик BitShares подтверждает: «он унаследован, поэтому требуется явное приведение» и «нужно явно передать его через» (key_data &) * key_record = key "". – jcalfee314