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

◆ get_index() [2/2]

template<name::raw TableName, typename T , typename... Indices>
template<name::raw IndexName>
auto eosio::multi_index< TableName, T, Indices >::get_index ( ) const
inline

Возвращает вторичный индекс нужного типа.

Параметры шаблона
IndexName— идентификатор нужного вторичного индекса
Возвращает
Индекс соответствующего типа: 64-битный беззнаковый целочисленный ключ (idx64), 128-битный беззнаковый целочисленный ключ (idx128), 128-битный ключ фиксированной длины в лексикографическом порядке (idx128), 256-битный ключ фиксированной длины (idx256), ключ с плавающей точкой, ключ double, ключ long double (четверная точность)

Пример:

// This assumes the code from the get_index() example. Replace myaction() {...}
void myaction() {
// create reference to address_index - see emplace example below
// add dan account to table - see emplace example below
// add additional account - brendan
addresses.emplace(payer, [&](auto& address) {
address.account_name = "brendan"_n;
address.first_name = "Brendan";
address.last_name = "Blumer";
address.street = "1 EOS Way";
address.city = "Hong Kong";
address.state = "HK";
address.zip = 93445;
});
uint32_t zipnumb = 93445;
auto zip_index = addresses.get_index<name("zip")>();
auto itr = zip_index.upper_bound(zipnumb);
eosio::check(itr->account_name == name("dan"), "Lock arf, Incorrect First Upper Bound Record ");
itr++;
eosio::check(itr == zip_index.end(), "Lock arf, Incorrect End of Iterator");
}
}
EOSIO_DISPATCH( addressbook, (myaction) )

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