From 629e3101ab54edfcadc42c6f3d7ea9c4fa3f9a93 Mon Sep 17 00:00:00 2001 From: Miguel Herranz Date: Sun, 22 Jan 2017 21:38:10 +0100 Subject: [PATCH] Replace BOOST_FOREACH with C++11 ranged for --- ...unordered_containers_boost_serialization.h | 6 +-- src/cryptonote_core/cryptonote_core.cpp | 10 ++-- .../cryptonote_format_utils.cpp | 32 ++++++------- src/cryptonote_core/miner.cpp | 2 +- src/cryptonote_core/tx_pool.cpp | 8 ++-- .../cryptonote_protocol_handler.inl | 14 +++--- src/p2p/net_node.inl | 4 +- src/p2p/net_peerlist.h | 2 +- src/p2p/p2p_protocol_defs.h | 2 +- src/rpc/core_rpc_server.cpp | 14 +++--- src/wallet/wallet2.cpp | 46 +++++++++---------- src/wallet/wallet2.h | 16 +++---- 12 files changed, 78 insertions(+), 78 deletions(-) diff --git a/src/common/unordered_containers_boost_serialization.h b/src/common/unordered_containers_boost_serialization.h index 08b5d9ccf..b2d5b27a6 100644 --- a/src/common/unordered_containers_boost_serialization.h +++ b/src/common/unordered_containers_boost_serialization.h @@ -43,7 +43,7 @@ namespace boost { size_t s = x.size(); a << s; - BOOST_FOREACH(auto& v, x) + for(auto& v: x) { a << v.first; a << v.second; @@ -72,7 +72,7 @@ namespace boost { size_t s = x.size(); a << s; - BOOST_FOREACH(auto& v, x) + for(auto& v: x) { a << v.first; a << v.second; @@ -101,7 +101,7 @@ namespace boost { size_t s = x.size(); a << s; - BOOST_FOREACH(auto& v, x) + for(auto& v: x) { a << v; } diff --git a/src/cryptonote_core/cryptonote_core.cpp b/src/cryptonote_core/cryptonote_core.cpp index f33a4f253..c5450c50d 100644 --- a/src/cryptonote_core/cryptonote_core.cpp +++ b/src/cryptonote_core/cryptonote_core.cpp @@ -668,7 +668,7 @@ namespace cryptonote bool core::are_key_images_spent(const std::vector& key_im, std::vector &spent) const { spent.clear(); - BOOST_FOREACH(auto& ki, key_im) + for(auto& ki: key_im) { spent.push_back(m_blockchain_storage.have_tx_keyimg_as_spent(ki)); } @@ -681,14 +681,14 @@ namespace cryptonote uint64_t emission_amount = 0; uint64_t total_fee_amount = 0; this->get_blocks(start_offset, count, blocks); - BOOST_FOREACH(auto& b, blocks) + for(auto& b: blocks) { std::list txs; std::list missed_txs; uint64_t coinbase_amount = get_outs_money_amount(b.miner_tx); this->get_transactions(b.tx_hashes, txs, missed_txs); uint64_t tx_fee_amount = 0; - BOOST_FOREACH(const auto& tx, txs) + for(const auto& tx: txs) { tx_fee_amount += get_tx_fee(tx); } @@ -703,7 +703,7 @@ namespace cryptonote bool core::check_tx_inputs_keyimages_diff(const transaction& tx) const { std::unordered_set ki; - BOOST_FOREACH(const auto& in, tx.vin) + for(const auto& in: tx.vin) { CHECKED_GET_SPECIFIC_VARIANT(in, const txin_to_key, tokey_in, false); if(!ki.insert(tokey_in.k_image).second) @@ -869,7 +869,7 @@ namespace cryptonote block_to_blob(b, arg.b.block); //pack transactions - BOOST_FOREACH(auto& tx, txs) + for(auto& tx: txs) arg.b.txs.push_back(t_serializable_object_to_blob(tx)); m_pprotocol->relay_block(arg, exclude_context); diff --git a/src/cryptonote_core/cryptonote_format_utils.cpp b/src/cryptonote_core/cryptonote_format_utils.cpp index e04409d87..03d81df25 100644 --- a/src/cryptonote_core/cryptonote_format_utils.cpp +++ b/src/cryptonote_core/cryptonote_format_utils.cpp @@ -274,12 +274,12 @@ namespace cryptonote } uint64_t amount_in = 0; uint64_t amount_out = 0; - BOOST_FOREACH(auto& in, tx.vin) + for(auto& in: tx.vin) { CHECK_AND_ASSERT_MES(in.type() == typeid(txin_to_key), 0, "unexpected type id in transaction"); amount_in += boost::get(in).amount; } - BOOST_FOREACH(auto& o, tx.vout) + for(auto& o: tx.vout) amount_out += o.amount; CHECK_AND_ASSERT_MES(amount_in >= amount_out, false, "transaction spend (" <= src_entr.outputs.size()) @@ -574,7 +574,7 @@ namespace cryptonote input_to_key.k_image = img; //fill outputs array and use relative offsets - BOOST_FOREACH(const tx_source_entry::output_entry& out_entry, src_entr.outputs) + for(const tx_source_entry::output_entry& out_entry: src_entr.outputs) input_to_key.key_offsets.push_back(out_entry.first); input_to_key.key_offsets = absolute_output_offsets_to_relative(input_to_key.key_offsets); @@ -588,7 +588,7 @@ namespace cryptonote uint64_t summary_outs_money = 0; //fill outputs size_t output_index = 0; - BOOST_FOREACH(const tx_destination_entry& dst_entr, shuffled_dsts) + for(const tx_destination_entry& dst_entr: shuffled_dsts) { CHECK_AND_ASSERT_MES(dst_entr.amount > 0 || tx.version > 1, false, "Destination with wrong amount: " << dst_entr.amount); crypto::key_derivation derivation; @@ -639,13 +639,13 @@ namespace cryptonote std::stringstream ss_ring_s; size_t i = 0; - BOOST_FOREACH(const tx_source_entry& src_entr, sources) + for(const tx_source_entry& src_entr: sources) { ss_ring_s << "pub_keys:" << ENDL; std::vector keys_ptrs; std::vector keys(src_entr.outputs.size()); size_t ii = 0; - BOOST_FOREACH(const tx_source_entry::output_entry& o, src_entr.outputs) + for(const tx_source_entry::output_entry& o: src_entr.outputs) { keys[ii] = rct2pk(o.second.dest); keys_ptrs.push_back(&keys[ii]); @@ -677,7 +677,7 @@ namespace cryptonote if (!use_simple_rct) { // non simple ringct requires all real inputs to be at the same index for all inputs - BOOST_FOREACH(const tx_source_entry& src_entr, sources) + for(const tx_source_entry& src_entr: sources) { if(src_entr.real_output != sources.begin()->real_output) { @@ -784,7 +784,7 @@ namespace cryptonote bool get_inputs_money_amount(const transaction& tx, uint64_t& money) { money = 0; - BOOST_FOREACH(const auto& in, tx.vin) + for(const auto& in: tx.vin) { CHECKED_GET_SPECIFIC_VARIANT(in, const txin_to_key, tokey_in, false); money += tokey_in.amount; @@ -801,7 +801,7 @@ namespace cryptonote //--------------------------------------------------------------- bool check_inputs_types_supported(const transaction& tx) { - BOOST_FOREACH(const auto& in, tx.vin) + for(const auto& in: tx.vin) { CHECK_AND_ASSERT_MES(in.type() == typeid(txin_to_key), false, "wrong variant type: " << in.type().name() << ", expected " << typeid(txin_to_key).name() @@ -813,7 +813,7 @@ namespace cryptonote //----------------------------------------------------------------------------------------------- bool check_outs_valid(const transaction& tx) { - BOOST_FOREACH(const tx_out& out, tx.vout) + for(const tx_out& out: tx.vout) { CHECK_AND_ASSERT_MES(out.target.type() == typeid(txout_to_key), false, "wrong variant type: " << out.target.type().name() << ", expected " << typeid(txout_to_key).name() @@ -838,7 +838,7 @@ namespace cryptonote bool check_inputs_overflow(const transaction& tx) { uint64_t money = 0; - BOOST_FOREACH(const auto& in, tx.vin) + for(const auto& in: tx.vin) { CHECKED_GET_SPECIFIC_VARIANT(in, const txin_to_key, tokey_in, false); if(money > tokey_in.amount + money) @@ -851,7 +851,7 @@ namespace cryptonote bool check_outs_overflow(const transaction& tx) { uint64_t money = 0; - BOOST_FOREACH(const auto& o, tx.vout) + for(const auto& o: tx.vout) { if(money > o.amount + money) return false; @@ -863,7 +863,7 @@ namespace cryptonote uint64_t get_outs_money_amount(const transaction& tx) { uint64_t outputs_amount = 0; - BOOST_FOREACH(const auto& o, tx.vout) + for(const auto& o: tx.vout) outputs_amount += o.amount; return outputs_amount; } @@ -905,7 +905,7 @@ namespace cryptonote { money_transfered = 0; size_t i = 0; - BOOST_FOREACH(const tx_out& o, tx.vout) + for(const tx_out& o: tx.vout) { CHECK_AND_ASSERT_MES(o.target.type() == typeid(txout_to_key), false, "wrong type id in transaction out" ); if(is_out_to_acc(acc, boost::get(o.target), tx_pub_key, i)) @@ -1177,7 +1177,7 @@ namespace cryptonote size_t bl_sz = 0; get_transaction_hash(b.miner_tx, h, bl_sz); txs_ids.push_back(h); - BOOST_FOREACH(auto& th, b.tx_hashes) + for(auto& th: b.tx_hashes) txs_ids.push_back(th); return get_tx_tree_hash(txs_ids); } diff --git a/src/cryptonote_core/miner.cpp b/src/cryptonote_core/miner.cpp index 51f508858..204d6d069 100644 --- a/src/cryptonote_core/miner.cpp +++ b/src/cryptonote_core/miner.cpp @@ -292,7 +292,7 @@ namespace cryptonote send_stop_signal(); CRITICAL_REGION_LOCAL(m_threads_lock); - BOOST_FOREACH(boost::thread& th, m_threads) + for(boost::thread& th: m_threads) th.join(); MINFO("Mining has been stopped, " << m_threads.size() << " finished" ); diff --git a/src/cryptonote_core/tx_pool.cpp b/src/cryptonote_core/tx_pool.cpp index 6ad139023..f810f6a60 100644 --- a/src/cryptonote_core/tx_pool.cpp +++ b/src/cryptonote_core/tx_pool.cpp @@ -240,7 +240,7 @@ namespace cryptonote // assume failure during verification steps until success is certain tvc.m_verifivation_failed = true; - BOOST_FOREACH(const auto& in, tx.vin) + for(const auto& in: tx.vin) { CHECKED_GET_SPECIFIC_VARIANT(in, const txin_to_key, txin, false); std::unordered_set& kei_image_set = m_spent_key_images[txin.k_image]; @@ -275,7 +275,7 @@ namespace cryptonote // ND: Speedup // 1. Move transaction hash calcuation outside of loop. ._. crypto::hash actual_hash = get_transaction_hash(tx); - BOOST_FOREACH(const txin_v& vi, tx.vin) + for(const txin_v& vi: tx.vin) { CHECKED_GET_SPECIFIC_VARIANT(vi, const txin_to_key, txin, false); auto it = m_spent_key_images.find(txin.k_image); @@ -415,7 +415,7 @@ namespace cryptonote void tx_memory_pool::get_transactions(std::list& txs) const { CRITICAL_REGION_LOCAL(m_transactions_lock); - BOOST_FOREACH(const auto& tx_vt, m_transactions) + for(const auto& tx_vt: m_transactions) txs.push_back(tx_vt.second.tx); } //------------------------------------------------------------------ @@ -488,7 +488,7 @@ namespace cryptonote bool tx_memory_pool::have_tx_keyimges_as_spent(const transaction& tx) const { CRITICAL_REGION_LOCAL(m_transactions_lock); - BOOST_FOREACH(const auto& in, tx.vin) + for(const auto& in: tx.vin) { CHECKED_GET_SPECIFIC_VARIANT(in, const txin_to_key, tokey_in, true);//should never fail if(have_tx_keyimg_as_spent(tokey_in.k_image)) diff --git a/src/cryptonote_protocol/cryptonote_protocol_handler.inl b/src/cryptonote_protocol/cryptonote_protocol_handler.inl index 211ba525c..f42d31dcf 100644 --- a/src/cryptonote_protocol/cryptonote_protocol_handler.inl +++ b/src/cryptonote_protocol/cryptonote_protocol_handler.inl @@ -411,7 +411,7 @@ namespace cryptonote transaction tx; crypto::hash tx_hash; - BOOST_FOREACH(auto& tx_blob, arg.b.txs) + for(auto& tx_blob: arg.b.txs) { if(parse_and_validate_tx_from_blob(tx_blob, tx)) { @@ -527,7 +527,7 @@ namespace cryptonote } size_t tx_idx = 0; - BOOST_FOREACH(auto& tx_hash, new_block.tx_hashes) + for(auto& tx_hash: new_block.tx_hashes) { if(m_core.get_pool_transaction(tx_hash, tx)) { @@ -638,7 +638,7 @@ namespace cryptonote fluffy_response.current_blockchain_height = m_core.get_current_blockchain_height(); fluffy_response.hop = arg.hop; size_t local_txs_count = local_txs.size(); - BOOST_FOREACH(auto& tx_idx, arg.missing_tx_indices) + for(auto& tx_idx: arg.missing_tx_indices) { if(tx_idx < local_txs_count) { @@ -790,7 +790,7 @@ namespace cryptonote context.m_remote_blockchain_height = arg.current_blockchain_height; size_t count = 0; - BOOST_FOREACH(const block_complete_entry& block_entry, arg.blocks) + for(const block_complete_entry& block_entry: arg.blocks) { if (m_stopping) { @@ -859,7 +859,7 @@ namespace cryptonote uint64_t previous_height = m_core.get_current_blockchain_height(); m_core.prepare_handle_incoming_blocks(arg.blocks); - BOOST_FOREACH(const block_complete_entry& block_entry, arg.blocks) + for(const block_complete_entry& block_entry: arg.blocks) { if (m_stopping) { @@ -869,7 +869,7 @@ namespace cryptonote // process transactions TIME_MEASURE_START(transactions_process_time); - BOOST_FOREACH(auto& tx_blob, block_entry.txs) + for(auto& tx_blob: block_entry.txs) { tx_verification_context tvc = AUTO_VAL_INIT(tvc); m_core.handle_incoming_tx(tx_blob, tvc, true, true, false); @@ -1080,7 +1080,7 @@ namespace cryptonote m_p2p->drop_connection(context); } - BOOST_FOREACH(auto& bl_id, arg.m_block_ids) + for(auto& bl_id: arg.m_block_ids) { if(!m_core.have_block(bl_id)) context.m_needed_objects.push_back(bl_id); diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl index 0e43d9579..d67c5dd93 100644 --- a/src/p2p/net_node.inl +++ b/src/p2p/net_node.inl @@ -1182,7 +1182,7 @@ namespace nodetool time(&now); delta = now - local_time; - BOOST_FOREACH(peerlist_entry& be, local_peerlist) + for(peerlist_entry& be: local_peerlist) { if(be.last_seen > local_time) { @@ -1320,7 +1320,7 @@ namespace nodetool template bool node_server::relay_notify_to_list(int command, const std::string& data_buff, const std::list &connections) { - BOOST_FOREACH(const auto& c_id, connections) + for(const auto& c_id: connections) { m_net_server.get_config_object().notify(command, data_buff, c_id); } diff --git a/src/p2p/net_peerlist.h b/src/p2p/net_peerlist.h index 4797eb82b..e9c31605d 100644 --- a/src/p2p/net_peerlist.h +++ b/src/p2p/net_peerlist.h @@ -230,7 +230,7 @@ namespace nodetool bool peerlist_manager::merge_peerlist(const std::list& outer_bs) { CRITICAL_REGION_LOCAL(m_peerlist_lock); - BOOST_FOREACH(const peerlist_entry& be, outer_bs) + for(const peerlist_entry& be: outer_bs) { append_with_peer_gray(be); } diff --git a/src/p2p/p2p_protocol_defs.h b/src/p2p/p2p_protocol_defs.h index ce1ee1449..6d6ac7b98 100644 --- a/src/p2p/p2p_protocol_defs.h +++ b/src/p2p/p2p_protocol_defs.h @@ -83,7 +83,7 @@ namespace nodetool time(&now_time); std::stringstream ss; ss << std::setfill ('0') << std::setw (8) << std::hex << std::noshowbase; - BOOST_FOREACH(const peerlist_entry& pe, pl) + for(const peerlist_entry& pe: pl) { ss << pe.id << "\t" << epee::string_tools::get_ip_string_from_int32(pe.adr.ip) << ":" << boost::lexical_cast(pe.adr.port) << " \tlast_seen: " << epee::misc_utils::get_time_interval_string(now_time - pe.last_seen) << std::endl; } diff --git a/src/rpc/core_rpc_server.cpp b/src/rpc/core_rpc_server.cpp index 7d896e491..01d84f7ce 100644 --- a/src/rpc/core_rpc_server.cpp +++ b/src/rpc/core_rpc_server.cpp @@ -160,7 +160,7 @@ namespace cryptonote return false; } - BOOST_FOREACH(auto& b, bs) + for(auto& b: bs) { res.blocks.resize(res.blocks.size()+1); res.blocks.back().block = block_to_blob(b.first); @@ -173,7 +173,7 @@ namespace cryptonote return false; } size_t txidx = 0; - BOOST_FOREACH(auto& t, b.second) + for(auto& t: b.second) { res.blocks.back().txs.push_back(tx_to_blob(t)); res.output_indices.back().indices.push_back(COMMAND_RPC_GET_BLOCKS_FAST::tx_output_indices()); @@ -381,7 +381,7 @@ namespace cryptonote { CHECK_CORE_BUSY(); std::vector vh; - BOOST_FOREACH(const auto& tx_hex_str, req.txs_hashes) + for(const auto& tx_hex_str: req.txs_hashes) { blobdata b; if(!string_tools::parse_hexstr_to_binbuff(tx_hex_str, b)) @@ -433,7 +433,7 @@ namespace cryptonote std::list::const_iterator txhi = req.txs_hashes.begin(); std::vector::const_iterator vhi = vh.begin(); - BOOST_FOREACH(auto& tx, txs) + for(auto& tx: txs) { res.txs.push_back(COMMAND_RPC_GET_TRANSACTIONS::entry()); COMMAND_RPC_GET_TRANSACTIONS::entry &e = res.txs.back(); @@ -471,7 +471,7 @@ namespace cryptonote } } - BOOST_FOREACH(const auto& miss_tx, missed_txs) + for(const auto& miss_tx: missed_txs) { res.missed_tx.push_back(string_tools::pod_to_hex(miss_tx)); } @@ -485,7 +485,7 @@ namespace cryptonote { CHECK_CORE_BUSY(); std::vector key_images; - BOOST_FOREACH(const auto& ki_hex_str, req.key_images) + for(const auto& ki_hex_str: req.key_images) { blobdata b; if(!string_tools::parse_hexstr_to_binbuff(ki_hex_str, b)) @@ -908,7 +908,7 @@ namespace cryptonote uint64_t core_rpc_server::get_block_reward(const block& blk) { uint64_t reward = 0; - BOOST_FOREACH(const tx_out& out, blk.miner_tx.vout) + for(const tx_out& out: blk.miner_tx.vout) { reward += out.amount; } diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp index 4348b8a62..14f180e00 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -841,7 +841,7 @@ void wallet2::process_new_transaction(const cryptonote::transaction& tx, const s " not match with daemon response size=" + std::to_string(o_indices.size())); } - BOOST_FOREACH(size_t o, outs) + for(size_t o: outs) { THROW_WALLET_EXCEPTION_IF(tx.vout.size() <= o, error::wallet_internal_error, "wrong out in transaction: internal index=" + std::to_string(o) + ", total_outs=" + std::to_string(tx.vout.size())); @@ -945,7 +945,7 @@ void wallet2::process_new_transaction(const cryptonote::transaction& tx, const s uint64_t tx_money_spent_in_ins = 0; // check all outputs for spending (compare key images) - BOOST_FOREACH(auto& in, tx.vin) + for(auto& in: tx.vin) { if(in.type() != typeid(cryptonote::txin_to_key)) continue; @@ -1106,7 +1106,7 @@ void wallet2::process_new_blockchain_entry(const cryptonote::block& b, const cry TIME_MEASURE_FINISH(miner_tx_handle_time); TIME_MEASURE_START(txs_handle_time); - BOOST_FOREACH(auto& txblob, bche.txs) + for(auto& txblob: bche.txs) { cryptonote::transaction tx; bool r = parse_and_validate_tx_from_blob(txblob, tx); @@ -1275,7 +1275,7 @@ void wallet2::process_blocks(uint64_t start_height, const std::list= m_blockchain.size()) { @@ -2514,7 +2514,7 @@ void wallet2::store_to(const std::string &path, const std::string &password) uint64_t wallet2::unlocked_balance() const { uint64_t amount = 0; - BOOST_FOREACH(const transfer_details& td, m_transfers) + for(const transfer_details& td: m_transfers) if(!td.m_spent && is_transfer_unlocked(td)) amount += td.amount(); @@ -2524,12 +2524,12 @@ uint64_t wallet2::unlocked_balance() const uint64_t wallet2::balance() const { uint64_t amount = 0; - BOOST_FOREACH(auto& td, m_transfers) + for(auto& td: m_transfers) if(!td.m_spent) amount += td.amount(); - BOOST_FOREACH(auto& utx, m_unconfirmed_txs) + for(auto& utx: m_unconfirmed_txs) if (utx.second.m_state != wallet2::unconfirmed_transfer_details::failed) amount+= utx.second.m_change; @@ -2997,7 +2997,7 @@ void wallet2::commit_tx(pending_tx& ptx) { payment_id = get_payment_id(ptx); dests = ptx.dests; - BOOST_FOREACH(size_t idx, ptx.selected_transfers) + for(size_t idx: ptx.selected_transfers) amount_in += m_transfers[idx].amount(); } add_unconfirmed_tx(ptx.tx, amount_in, dests, payment_id, ptx.change_dts.amount); @@ -3008,7 +3008,7 @@ void wallet2::commit_tx(pending_tx& ptx) LOG_PRINT_L2("transaction " << txid << " generated ok and sent to daemon, key_images: [" << ptx.key_images << "]"); - BOOST_FOREACH(size_t idx, ptx.selected_transfers) + for(size_t idx: ptx.selected_transfers) { set_spent(idx, 0); } @@ -3356,7 +3356,7 @@ std::vector wallet2::create_transactions(std::vector wallet2::create_transactions(std::vector wallet2::create_transactions(std::vector wallet2::create_transactions(std::vector sources; - BOOST_FOREACH(size_t idx, selected_transfers) + for(size_t idx: selected_transfers) { sources.resize(sources.size()+1); cryptonote::tx_source_entry& src = sources.back(); @@ -3743,11 +3743,11 @@ void wallet2::transfer_selected(const std::vector splitted_dsts, dust_dsts; uint64_t dust = 0; destination_split_strategy(dsts, change_dts, dust_policy.dust_threshold, splitted_dsts, dust_dsts); - BOOST_FOREACH(auto& d, dust_dsts) { + for(auto& d: dust_dsts) { THROW_WALLET_EXCEPTION_IF(dust_policy.dust_threshold < d.amount, error::wallet_internal_error, "invalid dust value: dust = " + std::to_string(d.amount) + ", dust_threshold = " + std::to_string(dust_policy.dust_threshold)); } - BOOST_FOREACH(auto& d, dust_dsts) { + for(auto& d: dust_dsts) { if (!dust_policy.add_to_fee) splitted_dsts.push_back(cryptonote::tx_destination_entry(d.amount, dust_policy.addr_for_dust)); dust += d.amount; @@ -3812,7 +3812,7 @@ void wallet2::transfer_selected_rct(std::vector sources; - BOOST_FOREACH(size_t idx, selected_transfers) + for(size_t idx: selected_transfers) { sources.resize(sources.size()+1); cryptonote::tx_source_entry& src = sources.back(); @@ -4107,7 +4107,7 @@ std::vector wallet2::create_transactions_2(std::vectorm_tx.vout.size() <= it->m_internal_output_index, error::wallet_internal_error, @@ -1028,7 +1028,7 @@ namespace tools std::to_string(daemon_resp.outs.size()) + ", expected " + std::to_string(selected_transfers.size())); std::unordered_map scanty_outs; - BOOST_FOREACH(COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS::outs_for_amount& amount_outs, daemon_resp.outs) + for(COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS::outs_for_amount& amount_outs: daemon_resp.outs) { if (amount_outs.outs.size() < fake_outputs_count) { @@ -1041,7 +1041,7 @@ namespace tools //prepare inputs size_t i = 0; std::vector sources; - BOOST_FOREACH(size_t idx, selected_transfers) + for(size_t idx: selected_transfers) { sources.resize(sources.size()+1); cryptonote::tx_source_entry& src = sources.back(); @@ -1052,7 +1052,7 @@ namespace tools if(daemon_resp.outs.size()) { daemon_resp.outs[i].outs.sort([](const out_entry& a, const out_entry& b){return a.global_amount_index < b.global_amount_index;}); - BOOST_FOREACH(out_entry& daemon_oe, daemon_resp.outs[i].outs) + for(out_entry& daemon_oe: daemon_resp.outs[i].outs) { if(td.m_global_output_index == daemon_oe.global_amount_index) continue; @@ -1094,11 +1094,11 @@ namespace tools std::vector splitted_dsts, dust_dsts; uint64_t dust = 0; destination_split_strategy(dsts, change_dts, dust_policy.dust_threshold, splitted_dsts, dust_dsts); - BOOST_FOREACH(auto& d, dust_dsts) { + for(auto& d: dust_dsts) { THROW_WALLET_EXCEPTION_IF(dust_policy.dust_threshold < d.amount, error::wallet_internal_error, "invalid dust value: dust = " + std::to_string(d.amount) + ", dust_threshold = " + std::to_string(dust_policy.dust_threshold)); } - BOOST_FOREACH(auto& d, dust_dsts) { + for(auto& d: dust_dsts) { if (!dust_policy.add_to_fee) splitted_dsts.push_back(cryptonote::tx_destination_entry(d.amount, dust_policy.addr_for_dust)); dust += d.amount;