CDT  v4.2.0
инструменты разработчика

◆ erase() [2/2]

template<name::raw TableName, typename T , typename... Indices>
const_iterator eosio::multi_index< TableName, T, Indices >::erase ( const_iterator  itr)
inline

Удаляет существующий объект из таблицы (по итератору).

Аргументы
itr— итератор на удаляемый объект
Предусловие
itr указывает на существующий элемент
Постусловие
Объект удалён из таблицы, связанное хранение освобождено.
Обновлены вторичные индексы таблицы.
Прежнему плательщику за хранение возвращается стоимость таблицы и вторичных индексов для удалённого объекта; при удалении таблицы и индексов — также накладные расходы.
Возвращает
Для сигнатуры с const_iterator — итератор на объект, следующий за удалённым.

Исключения: Удаляемого объекта нет в таблице. Действие не уполномочено изменять таблицу. Недопустимый итератор.

Пример:

// This assumes the code from the constructor example. Replace myaction() {...}
void myaction() {
// create reference to address_index - see emplace example
// add dan account to table - see emplace example
auto itr = addresses.find("dan"_n);
eosio::check(itr != addresses.end(), "Address for account not found");
addresses.erase( itr );
eosio::check(itr != addresses.end(), "Everting lock arf, Address not erased properly");
}
}
EOSIO_ABI( addressbook, (myaction) )

См. определение в файле multi_index.hpp строка 1894