/root/bitcoin/src/util/string.h
Line | Count | Source |
1 | | // Copyright (c) 2019-present The Bitcoin Core developers |
2 | | // Distributed under the MIT software license, see the accompanying |
3 | | // file COPYING or http://www.opensource.org/licenses/mit-license.php. |
4 | | |
5 | | #ifndef BITCOIN_UTIL_STRING_H |
6 | | #define BITCOIN_UTIL_STRING_H |
7 | | |
8 | | #include <span.h> |
9 | | |
10 | | #include <array> |
11 | | #include <cstdint> |
12 | | #include <cstring> |
13 | | #include <locale> |
14 | | #include <sstream> |
15 | | #include <string> // IWYU pragma: export |
16 | | #include <string_view> // IWYU pragma: export |
17 | | #include <vector> |
18 | | |
19 | | namespace util { |
20 | | namespace detail { |
21 | | template <unsigned num_params> |
22 | | constexpr static void CheckNumFormatSpecifiers(const char* str) |
23 | 0 | { |
24 | 0 | unsigned count_normal{0}; // Number of "normal" specifiers, like %s |
25 | 0 | unsigned count_pos{0}; // Max number in positional specifier, like %8$s |
26 | 0 | for (auto it{str}; *it != '\0'; ++it) { |
27 | 0 | if (*it != '%' || *++it == '%') continue; // Skip escaped %% |
28 | 0 |
|
29 | 0 | auto add_arg = [&] { |
30 | 0 | unsigned maybe_num{0}; |
31 | 0 | while ('0' <= *it && *it <= '9') { |
32 | 0 | maybe_num *= 10; |
33 | 0 | maybe_num += *it - '0'; |
34 | 0 | ++it; |
35 | 0 | } |
36 | 0 |
|
37 | 0 | if (*it == '$') { |
38 | 0 | ++it; |
39 | 0 | // Positional specifier, like %8$s |
40 | 0 | if (maybe_num == 0) throw "Positional format specifier must have position of at least 1"; |
41 | 0 | count_pos = std::max(count_pos, maybe_num); |
42 | 0 | } else { |
43 | 0 | // Non-positional specifier, like %s |
44 | 0 | ++count_normal; |
45 | 0 | } |
46 | 0 | }; |
47 | 0 |
|
48 | 0 | // Increase argument count and consume positional specifier, if present. |
49 | 0 | add_arg(); |
50 | 0 |
|
51 | 0 | // Consume flags. |
52 | 0 | while (*it == '#' || *it == '0' || *it == '-' || *it == ' ' || *it == '+') ++it; |
53 | 0 |
|
54 | 0 | auto parse_size = [&] { |
55 | 0 | if (*it == '*') { |
56 | 0 | ++it; |
57 | 0 | add_arg(); |
58 | 0 | } else { |
59 | 0 | while ('0' <= *it && *it <= '9') ++it; |
60 | 0 | } |
61 | 0 | }; |
62 | 0 |
|
63 | 0 | // Consume dynamic or static width value. |
64 | 0 | parse_size(); |
65 | 0 |
|
66 | 0 | // Consume dynamic or static precision value. |
67 | 0 | if (*it == '.') { |
68 | 0 | ++it; |
69 | 0 | parse_size(); |
70 | 0 | } |
71 | 0 |
|
72 | 0 | if (*it == '\0') throw "Format specifier incorrectly terminated by end of string"; |
73 | 0 |
|
74 | 0 | // Length and type in "[flags][width][.precision][length]type" |
75 | 0 | // is not checked. Parsing continues with the next '%'. |
76 | 0 | } |
77 | 0 | if (count_normal && count_pos) throw "Format specifiers must be all positional or all non-positional!"; |
78 | 0 | unsigned count{count_normal | count_pos}; |
79 | 0 | if (num_params != count) throw "Format specifier count must match the argument count!"; |
80 | 0 | } Unexecuted instantiation: addition_overflow.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: addrman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: addrman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: addrman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: asmap.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: asmap_direct.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: autofile.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: banman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: banman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: banman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: base_encode_decode.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: bip324.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: bitdeque.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: bitset.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: block.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: block_header.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: block_index.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: blockfilter.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: bloom_filter.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: buffered_file.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: chain.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: checkqueue.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: cluster_linearize.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: cmpctblock.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: cmpctblock.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: cmpctblock.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: coins_view.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: coinscache_sim.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: connman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: connman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: connman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: crypto.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: crypto_aes256.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: crypto_aes256cbc.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: crypto_chacha20.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: crypto_chacha20poly1305.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: crypto_common.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: crypto_diff_fuzz_chacha20.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: crypto_hkdf_hmac_sha256_l32.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: crypto_poly1305.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: cuckoocache.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: deserialize.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: deserialize.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: deserialize.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: feefrac.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: fee_rate.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: feeratediagram.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: fees.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: flatfile.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: float.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: golomb_rice.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: headerssync.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: headerssync.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: http_request.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: http_request.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: i2p.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: i2p.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: i2p.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: integer.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: integer.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: key.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: kitchen_sink.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: load_external_block_file.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: locale.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: merkle.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: merkleblock.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: message.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: miniscript.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: minisketch.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: mini_miner.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: muhash.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: multiplication_overflow.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: net.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: net.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: net.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: net_permissions.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: net_permissions.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: net_permissions.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: netaddress.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: netaddress.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: netaddress.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: netbase_dns_lookup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: netbase_dns_lookup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: netbase_dns_lookup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: node_eviction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: node_eviction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: node_eviction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: p2p_handshake.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: p2p_handshake.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: p2p_handshake.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: p2p_headers_presync.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: p2p_headers_presync.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: p2p_transport_serialization.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: p2p_transport_serialization.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: pcp.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: pcp.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: pcp.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: package_eval.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: parse_hd_keypath.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: partially_downloaded_block.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: policy_estimator.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: policy_estimator_io.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: poolresource.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: pow.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: prevector.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: primitives_transaction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: process_message.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: process_message.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: process_message.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: process_messages.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: process_messages.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: process_messages.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: protocol.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: protocol.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: psbt.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: random.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: rbf.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: rolling_bloom_filter.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: rpc.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: script.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: script_assets_test_minimizer.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: script_descriptor_cache.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: script_flags.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: script_format.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: script_interpreter.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: script_ops.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: script_sigcache.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: script_sign.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: scriptnum_ops.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: secp256k1_ec_seckey_import_export_der.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: secp256k1_ecdsa_signature_parse_der_lax.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: signature_checker.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: signet.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: socks5.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: socks5.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: socks5.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: span.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: string.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: string.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: strprintf.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: system.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: torcontrol.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: torcontrol.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: transaction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: txdownloadman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: txdownloadman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: txdownloadman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj6EEEvPKc Unexecuted instantiation: tx_in.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: tx_out.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: tx_pool.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: txgraph.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: txorphan.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: txorphan.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: txrequest.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: txrequest.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: utxo_snapshot.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: utxo_snapshot.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: utxo_total_supply.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: validation_load_mempool.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: vecdeque.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: versionbits.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: coincontrol.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: coinselection.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: crypter.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: fees.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: fees.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: fees.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: scriptpubkeyman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: scriptpubkeyman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: scriptpubkeyman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: scriptpubkeyman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: spend.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: spend.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: spend.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: spend.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: wallet_bdb_parser.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: mempool.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: fuzz.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: client.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: chain.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj6EEEvPKc Unexecuted instantiation: chain.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: chainparams.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: chainparams.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: coins.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: bloom.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: messages.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: messages.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: pcp.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: pcp.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: settings.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: settings.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: system.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: core_read.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: core_write.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: core_write.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: core_write.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: key_io.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: key_io.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: netaddress.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: netbase.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: netbase.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: netbase.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: netbase.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: feerate.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: request.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: request.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: request.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKc Unexecuted instantiation: descriptor.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: descriptor.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: descriptor.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: signingprovider.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: config.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: config.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: config.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: asmap.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: asmap.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: bip32.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: check.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj7EEEvPKc Unexecuted instantiation: check.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: fs_helpers.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: fs_helpers.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: moneystr.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: sock.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: sock.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: sock.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: syserror.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: syserror.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: time.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj6EEEvPKc Unexecuted instantiation: time.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: logging.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: logging.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: logging.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKc Unexecuted instantiation: logging.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: random.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: streams.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: coinselection.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: coinselection.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: dump.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: dump.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: dump.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: dump.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: migrate.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: migrate.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: migrate.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: scriptpubkeyman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: spend.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj20EEEvPKc Unexecuted instantiation: transaction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: transaction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: transaction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: wallet.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: wallet.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: wallet.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: wallet.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: wallet.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: wallet.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKc Unexecuted instantiation: walletdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: walletdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: walletdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: walletdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: walletdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: db.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: db.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: external_signer_scriptpubkeyman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: interfaces.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: interfaces.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: interfaces.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: interfaces.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: load.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: load.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: load.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: load.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: receive.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: receive.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: receive.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: receive.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: sqlite.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: sqlite.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: sqlite.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: feebumper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: feebumper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: feebumper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: feebumper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: feebumper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: addresses.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: addresses.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: addresses.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: addresses.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: backup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: backup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: backup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: backup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: coins.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: coins.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: coins.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: encrypt.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: encrypt.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: encrypt.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: encrypt.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: signmessage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: signmessage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: signmessage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: signmessage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: transactions.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: transactions.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: transactions.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: transactions.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: mining.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: random.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: setup_common.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: setup_common.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: txmempool.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: txmempool.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: validation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: addrdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: addrdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: addrdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: addrdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: addrman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: addrman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: addrman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKc Unexecuted instantiation: banman.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: blockencodings.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: blockencodings.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: blockencodings.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj6EEEvPKc Unexecuted instantiation: tx_verify.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: tx_verify.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: dbwrapper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: dbwrapper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: dbwrapper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: dbwrapper.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: flatfile.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: flatfile.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: headerssync.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: headerssync.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: httpserver.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: httpserver.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: httpserver.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: httpserver.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: i2p.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: init.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: init.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: init.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: init.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: init.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKc Unexecuted instantiation: init.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: coinstats.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: context.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: mapport.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: mapport.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: mapport.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: net.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: net.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKc Unexecuted instantiation: net.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj6EEEvPKc Unexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKc Unexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj8EEEvPKc Unexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj7EEEvPKc Unexecuted instantiation: net_processing.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: netgroup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: netgroup.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: blockmanager_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: blockstorage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: blockstorage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: blockstorage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: blockstorage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj7EEEvPKc Unexecuted instantiation: blockstorage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: blockstorage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: caches.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: chainstate.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: chainstate.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: chainstatemanager_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: chainstatemanager_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: coins_view_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: context.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: database_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: eviction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: interface_ui.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: kernel_notifications.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: mempool_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: mempool_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: mempool_persist.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: mempool_persist.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: mempool_persist.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: mempool_persist.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKc Unexecuted instantiation: mempool_persist.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: mempool_persist_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: miner.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: miner.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: miner.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKc Unexecuted instantiation: miner.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: peerman_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: peerman_args.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: timeoffsets.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: timeoffsets.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: txdownloadman_impl.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: txdownloadman_impl.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: txdownloadman_impl.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj6EEEvPKc Unexecuted instantiation: txdownloadman_impl.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: txorphanage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: txorphanage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: txorphanage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: txorphanage.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKc Unexecuted instantiation: txreconciliation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: txreconciliation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: noui.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: noui.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: fees.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj18EEEvPKc Unexecuted instantiation: fees.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj7EEEvPKc Unexecuted instantiation: rbf.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: rbf.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: rest.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: rest.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: rest.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: blockchain.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: blockchain.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: blockchain.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: blockchain.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: blockchain.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: mempool.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: mining.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: node.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: node.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: output_script.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: rawtransaction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: rawtransaction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: server.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: server.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: server_util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: server_util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: txoutproof.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: sigcache.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: signet.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: torcontrol.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: torcontrol.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: txdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: txdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: txdb.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: txmempool.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: validation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: validation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: validation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKc Unexecuted instantiation: validation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: validation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: validation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj6EEEvPKc Unexecuted instantiation: validation.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj12EEEvPKc Unexecuted instantiation: validationinterface.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: validationinterface.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: validationinterface.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: httprpc.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: httprpc.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: httprpc.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: base.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: base.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: blockfilterindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: blockfilterindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: blockfilterindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: blockfilterindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: coinstatsindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: coinstatsindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: coinstatsindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: txindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: txindex.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: abort.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: coin.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: ephemeral_policy.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: truc_policy.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: truc_policy.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: netif.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: netif.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: external_signer.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: external_signer.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: common.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: common.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: common.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: common.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: common.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj0EEEvPKc Unexecuted instantiation: net_types.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: net_types.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: rawtransaction_util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: rawtransaction_util.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: batchpriority.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: thread.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: exception.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj4EEEvPKc Unexecuted instantiation: exception.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: exception.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: clientversion.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj3EEEvPKc Unexecuted instantiation: clientversion.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj1EEEvPKc Unexecuted instantiation: clientversion.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj2EEEvPKc Unexecuted instantiation: block.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj8EEEvPKc Unexecuted instantiation: transaction.cpp:_ZN4util6detailL24CheckNumFormatSpecifiersILj5EEEvPKc |
81 | | } // namespace detail |
82 | | |
83 | | /** |
84 | | * @brief A wrapper for a compile-time partially validated format string |
85 | | * |
86 | | * This struct can be used to enforce partial compile-time validation of format |
87 | | * strings, to reduce the likelihood of tinyformat throwing exceptions at |
88 | | * run-time. Validation is partial to try and prevent the most common errors |
89 | | * while avoiding re-implementing the entire parsing logic. |
90 | | */ |
91 | | template <unsigned num_params> |
92 | | struct ConstevalFormatString { |
93 | | const char* const fmt; |
94 | | consteval ConstevalFormatString(const char* str) : fmt{str} { detail::CheckNumFormatSpecifiers<num_params>(fmt); } |
95 | | }; |
96 | | |
97 | | void ReplaceAll(std::string& in_out, const std::string& search, const std::string& substitute); |
98 | | |
99 | | /** Split a string on any char found in separators, returning a vector. |
100 | | * |
101 | | * If sep does not occur in sp, a singleton with the entirety of sp is returned. |
102 | | * |
103 | | * @param[in] include_sep Whether to include the separator at the end of the left side of the splits. |
104 | | * |
105 | | * Note that this function does not care about braces, so splitting |
106 | | * "foo(bar(1),2),3) on ',' will return {"foo(bar(1)", "2)", "3)"}. |
107 | | * |
108 | | * If include_sep == true, splitting "foo(bar(1),2),3) on ',' |
109 | | * will return: |
110 | | * - foo(bar(1), |
111 | | * - 2), |
112 | | * - 3) |
113 | | */ |
114 | | template <typename T = std::span<const char>> |
115 | | std::vector<T> Split(const std::span<const char>& sp, std::string_view separators, bool include_sep = false) |
116 | 0 | { |
117 | 0 | std::vector<T> ret; |
118 | 0 | auto it = sp.begin(); |
119 | 0 | auto start = it; |
120 | 0 | while (it != sp.end()) { |
121 | 0 | if (separators.find(*it) != std::string::npos) { |
122 | 0 | if (include_sep) { |
123 | 0 | ret.emplace_back(start, it + 1); |
124 | 0 | } else { |
125 | 0 | ret.emplace_back(start, it); |
126 | 0 | } |
127 | 0 | start = it + 1; |
128 | 0 | } |
129 | 0 | ++it; |
130 | 0 | } |
131 | 0 | ret.emplace_back(start, it); |
132 | 0 | return ret; |
133 | 0 | } Unexecuted instantiation: _ZN4util5SplitINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESt6vectorIT_SaIS8_EERKSt4spanIKcLm18446744073709551615EESt17basic_string_viewIcS4_Eb Unexecuted instantiation: _ZN4util5SplitISt4spanIKcLm18446744073709551615EEEESt6vectorIT_SaIS5_EERKS3_St17basic_string_viewIcSt11char_traitsIcEEb Unexecuted instantiation: _ZN4util5SplitISt17basic_string_viewIcSt11char_traitsIcEEEESt6vectorIT_SaIS6_EERKSt4spanIKcLm18446744073709551615EES4_b |
134 | | |
135 | | /** Split a string on every instance of sep, returning a vector. |
136 | | * |
137 | | * If sep does not occur in sp, a singleton with the entirety of sp is returned. |
138 | | * |
139 | | * Note that this function does not care about braces, so splitting |
140 | | * "foo(bar(1),2),3) on ',' will return {"foo(bar(1)", "2)", "3)"}. |
141 | | */ |
142 | | template <typename T = std::span<const char>> |
143 | | std::vector<T> Split(const std::span<const char>& sp, char sep, bool include_sep = false) |
144 | 0 | { |
145 | 0 | return Split<T>(sp, std::string_view{&sep, 1}, include_sep); |
146 | 0 | } Unexecuted instantiation: _ZN4util5SplitINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESt6vectorIT_SaIS8_EERKSt4spanIKcLm18446744073709551615EEcb Unexecuted instantiation: _ZN4util5SplitISt4spanIKcLm18446744073709551615EEEESt6vectorIT_SaIS5_EERKS3_cb Unexecuted instantiation: _ZN4util5SplitISt17basic_string_viewIcSt11char_traitsIcEEEESt6vectorIT_SaIS6_EERKSt4spanIKcLm18446744073709551615EEcb |
147 | | |
148 | | [[nodiscard]] inline std::vector<std::string> SplitString(std::string_view str, char sep) |
149 | 0 | { |
150 | 0 | return Split<std::string>(str, sep); |
151 | 0 | } |
152 | | |
153 | | [[nodiscard]] inline std::vector<std::string> SplitString(std::string_view str, std::string_view separators) |
154 | 0 | { |
155 | 0 | return Split<std::string>(str, separators); |
156 | 0 | } |
157 | | |
158 | | [[nodiscard]] inline std::string_view TrimStringView(std::string_view str, std::string_view pattern = " \f\n\r\t\v") |
159 | 3.36k | { |
160 | 3.36k | std::string::size_type front = str.find_first_not_of(pattern); |
161 | 3.36k | if (front == std::string::npos) { |
162 | 0 | return {}; |
163 | 0 | } |
164 | 3.36k | std::string::size_type end = str.find_last_not_of(pattern); |
165 | 3.36k | return str.substr(front, end - front + 1); |
166 | 3.36k | } |
167 | | |
168 | | [[nodiscard]] inline std::string TrimString(std::string_view str, std::string_view pattern = " \f\n\r\t\v") |
169 | 0 | { |
170 | 0 | return std::string(TrimStringView(str, pattern)); |
171 | 0 | } |
172 | | |
173 | | [[nodiscard]] inline std::string_view RemoveSuffixView(std::string_view str, std::string_view suffix) |
174 | 0 | { |
175 | 0 | if (str.ends_with(suffix)) { |
176 | 0 | return str.substr(0, str.size() - suffix.size()); |
177 | 0 | } |
178 | 0 | return str; |
179 | 0 | } |
180 | | |
181 | | [[nodiscard]] inline std::string_view RemovePrefixView(std::string_view str, std::string_view prefix) |
182 | 3.36k | { |
183 | 3.36k | if (str.starts_with(prefix)) { |
184 | 0 | return str.substr(prefix.size()); |
185 | 0 | } |
186 | 3.36k | return str; |
187 | 3.36k | } |
188 | | |
189 | | [[nodiscard]] inline std::string RemovePrefix(std::string_view str, std::string_view prefix) |
190 | 0 | { |
191 | 0 | return std::string(RemovePrefixView(str, prefix)); |
192 | 0 | } |
193 | | |
194 | | /** |
195 | | * Join all container items. Typically used to concatenate strings but accepts |
196 | | * containers with elements of any type. |
197 | | * |
198 | | * @param container The items to join |
199 | | * @param separator The separator |
200 | | * @param unary_op Apply this operator to each item |
201 | | */ |
202 | | template <typename C, typename S, typename UnaryOp> |
203 | | // NOLINTNEXTLINE(misc-no-recursion) |
204 | | auto Join(const C& container, const S& separator, UnaryOp unary_op) |
205 | 21.5k | { |
206 | 21.5k | decltype(unary_op(*container.begin())) ret; |
207 | 21.5k | bool first{true}; |
208 | 148k | for (const auto& item : container) { |
209 | 148k | if (!first) ret += separator; |
210 | 148k | ret += unary_op(item); |
211 | 148k | first = false; |
212 | 148k | } |
213 | 21.5k | return ret; |
214 | 21.5k | } Unexecuted instantiation: _ZN4util4JoinISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEA2_cZNS_17MakeUnorderedListERKS9_EUlRKS7_E_EEDaRKT_RKT0_T1_ _ZN4util4JoinISt6vectorI11LogCategorySaIS2_EEA3_cZNK5BCLog6Logger19LogCategoriesStringB5cxx11EvEUlRKS2_E_EEDaRKT_RKT0_T1_ Line | Count | Source | 205 | 3.36k | { | 206 | 3.36k | decltype(unary_op(*container.begin())) ret; | 207 | 3.36k | bool first{true}; | 208 | 94.3k | for (const auto& item : container) { | 209 | 94.3k | if (!first) ret += separator; | 210 | 94.3k | ret += unary_op(item); | 211 | 94.3k | first = false; | 212 | 94.3k | } | 213 | 3.36k | return ret; | 214 | 3.36k | } |
Unexecuted instantiation: _ZN4util4JoinISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEA4_cZNS_4JoinIS9_SA_EEDaRKT_RKT0_EUlSE_E_EEDaSE_SH_T1_ Unexecuted instantiation: _ZN4util4JoinISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EES7_ZNS_4JoinIS9_S7_EEDaRKT_RKT0_EUlSD_E_EEDaSD_SG_T1_ _ZN4util4JoinISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEA3_cZNS_4JoinIS9_SA_EEDaRKT_RKT0_EUlSE_E_EEDaSE_SH_T1_ Line | Count | Source | 205 | 6.73k | { | 206 | 6.73k | decltype(unary_op(*container.begin())) ret; | 207 | 6.73k | bool first{true}; | 208 | 35.3k | for (const auto& item : container) { | 209 | 35.3k | if (!first) ret += separator; | 210 | 35.3k | ret += unary_op(item); | 211 | 35.3k | first = false; | 212 | 35.3k | } | 213 | 6.73k | return ret; | 214 | 6.73k | } |
Unexecuted instantiation: messages.cpp:_ZN4util4JoinISt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE15FeeEstimateModeESaISA_EES8_ZN6common8FeeModesERKS8_E3$_0EEDaRKT_RKT0_T1_ outputtype.cpp:_ZN4util4JoinISt5arrayI10OutputTypeLm4EEA3_cZ20FormatAllOutputTypesB5cxx11vE3$_0EEDaRKT_RKT0_T1_ Line | Count | Source | 205 | 3.36k | { | 206 | 3.36k | decltype(unary_op(*container.begin())) ret; | 207 | 3.36k | bool first{true}; | 208 | 13.4k | for (const auto& item : container) { | 209 | 13.4k | if (!first) ret += separator; | 210 | 13.4k | ret += unary_op(item); | 211 | 13.4k | first = false; | 212 | 13.4k | } | 213 | 3.36k | return ret; | 214 | 3.36k | } |
Unexecuted instantiation: util.cpp:_ZN4util4JoinISt6vectorI6RPCArgSaIS2_EEA2_cZNKS2_8ToStringB5cxx11EbE3$_0EEDaRKT_RKT0_T1_ logging.cpp:_ZN4util4JoinISt6vectorIN5BCLog5LevelESaIS3_EEA3_cZNKS2_6Logger15LogLevelsStringB5cxx11EvE3$_0EEDaRKT_RKT0_T1_ Line | Count | Source | 205 | 1.68k | { | 206 | 1.68k | decltype(unary_op(*container.begin())) ret; | 207 | 1.68k | bool first{true}; | 208 | 5.05k | for (const auto& item : container) { | 209 | 5.05k | if (!first) ret += separator; | 210 | 5.05k | ret += unary_op(item); | 211 | 5.05k | first = false; | 212 | 5.05k | } | 213 | 1.68k | return ret; | 214 | 1.68k | } |
_ZN4util4JoinISt6vectorI13bilingual_strSaIS2_EES2_ZNS_4JoinIS4_S2_EEDaRKT_RKT0_EUlS8_E_EEDaS8_SB_T1_ Line | Count | Source | 205 | 6.38k | { | 206 | 6.38k | decltype(unary_op(*container.begin())) ret; | 207 | 6.38k | bool first{true}; | 208 | 6.38k | for (const auto& item : container) { | 209 | 0 | if (!first) ret += separator; | 210 | 0 | ret += unary_op(item); | 211 | 0 | first = false; | 212 | 0 | } | 213 | 6.38k | return ret; | 214 | 6.38k | } |
Unexecuted instantiation: blockfilter.cpp:_ZN4util4JoinISt3mapI15BlockFilterTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS2_ESaISt4pairIKS2_S8_EEEA3_cZ20ListBlockFilterTypesvE3$_0EEDaRKT_RKT0_T1_ Unexecuted instantiation: validation.cpp:_ZN4util4JoinISt6vectorIiSaIiEEA3_cZN17ChainstateManager16ActivateSnapshotER8AutoFileRKN4node16SnapshotMetadataEbE3$_0EEDaRKT_RKT0_T1_ |
215 | | |
216 | | template <typename C, typename S> |
217 | | auto Join(const C& container, const S& separator) |
218 | 13.1k | { |
219 | 35.3k | return Join(container, separator, [](const auto& i) { return i; });Unexecuted instantiation: _ZZN4util4JoinISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEA4_cEEDaRKT_RKT0_ENKUlSD_E_clIS7_EEDaSD_ Unexecuted instantiation: _ZZN4util4JoinISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EES7_EEDaRKT_RKT0_ENKUlSC_E_clIS7_EEDaSC_ _ZZN4util4JoinISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEA3_cEEDaRKT_RKT0_ENKUlSD_E_clIS7_EEDaSD_ Line | Count | Source | 219 | 35.3k | return Join(container, separator, [](const auto& i) { return i; }); |
Unexecuted instantiation: _ZZN4util4JoinISt6vectorI13bilingual_strSaIS2_EES2_EEDaRKT_RKT0_ENKUlS7_E_clIS2_EEDaS7_ |
220 | 13.1k | } Unexecuted instantiation: _ZN4util4JoinISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEA4_cEEDaRKT_RKT0_ Unexecuted instantiation: _ZN4util4JoinISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EES7_EEDaRKT_RKT0_ _ZN4util4JoinISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEA3_cEEDaRKT_RKT0_ Line | Count | Source | 218 | 6.73k | { | 219 | 6.73k | return Join(container, separator, [](const auto& i) { return i; }); | 220 | 6.73k | } |
_ZN4util4JoinISt6vectorI13bilingual_strSaIS2_EES2_EEDaRKT_RKT0_ Line | Count | Source | 218 | 6.38k | { | 219 | 6.38k | return Join(container, separator, [](const auto& i) { return i; }); | 220 | 6.38k | } |
|
221 | | |
222 | | /** |
223 | | * Create an unordered multi-line list of items. |
224 | | */ |
225 | | inline std::string MakeUnorderedList(const std::vector<std::string>& items) |
226 | 0 | { |
227 | 0 | return Join(items, "\n", [](const std::string& item) { return "- " + item; }); |
228 | 0 | } |
229 | | |
230 | | /** |
231 | | * Check if a string does not contain any embedded NUL (\0) characters |
232 | | */ |
233 | | [[nodiscard]] inline bool ContainsNoNUL(std::string_view str) noexcept |
234 | 0 | { |
235 | 0 | for (auto c : str) { |
236 | 0 | if (c == 0) return false; |
237 | 0 | } |
238 | 0 | return true; |
239 | 0 | } |
240 | | |
241 | | /** |
242 | | * Locale-independent version of std::to_string |
243 | | */ |
244 | | template <typename T> |
245 | | std::string ToString(const T& t) |
246 | 0 | { |
247 | 0 | std::ostringstream oss; |
248 | 0 | oss.imbue(std::locale::classic()); |
249 | 0 | oss << t; |
250 | 0 | return oss.str(); |
251 | 0 | } Unexecuted instantiation: _ZN4util8ToStringIlEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_ Unexecuted instantiation: _ZN4util8ToStringIjEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_ Unexecuted instantiation: _ZN4util8ToStringImEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_ Unexecuted instantiation: _ZN4util8ToStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_ |
252 | | |
253 | | /** |
254 | | * Check whether a container begins with the given prefix. |
255 | | */ |
256 | | template <typename T1, size_t PREFIX_LEN> |
257 | | [[nodiscard]] inline bool HasPrefix(const T1& obj, |
258 | | const std::array<uint8_t, PREFIX_LEN>& prefix) |
259 | 56.6k | { |
260 | 56.6k | return obj.size() >= PREFIX_LEN && |
261 | 56.6k | std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); |
262 | 56.6k | } _ZN4util9HasPrefixI9prevectorILj16EhjiELm6EEEbRKT_RKSt5arrayIhXT0_EE Line | Count | Source | 259 | 6.12k | { | 260 | 6.12k | return obj.size() >= PREFIX_LEN && | 261 | 6.12k | std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); | 262 | 6.12k | } |
_ZN4util9HasPrefixI9prevectorILj16EhjiELm12EEEbRKT_RKSt5arrayIhXT0_EE Line | Count | Source | 259 | 4.71k | { | 260 | 4.71k | return obj.size() >= PREFIX_LEN && | 261 | 4.71k | std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); | 262 | 4.71k | } |
_ZN4util9HasPrefixISt4spanIKhLm18446744073709551615EELm12EEEbRKT_RKSt5arrayIhXT0_EE Line | Count | Source | 259 | 4.92k | { | 260 | 4.92k | return obj.size() >= PREFIX_LEN && | 261 | 4.92k | std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); | 262 | 4.92k | } |
_ZN4util9HasPrefixISt4spanIKhLm18446744073709551615EELm6EEEbRKT_RKSt5arrayIhXT0_EE Line | Count | Source | 259 | 9.85k | { | 260 | 9.85k | return obj.size() >= PREFIX_LEN && | 261 | 9.85k | std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); | 262 | 9.85k | } |
_ZN4util9HasPrefixI9prevectorILj16EhjiELm2EEEbRKT_RKSt5arrayIhXT0_EE Line | Count | Source | 259 | 5.01k | { | 260 | 5.01k | return obj.size() >= PREFIX_LEN && | 261 | 5.01k | std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); | 262 | 5.01k | } |
_ZN4util9HasPrefixI9prevectorILj16EhjiELm3EEEbRKT_RKSt5arrayIhXT0_EE Line | Count | Source | 259 | 17.9k | { | 260 | 17.9k | return obj.size() >= PREFIX_LEN && | 261 | 17.9k | std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); | 262 | 17.9k | } |
_ZN4util9HasPrefixI9prevectorILj16EhjiELm4EEEbRKT_RKSt5arrayIhXT0_EE Line | Count | Source | 259 | 5.22k | { | 260 | 5.22k | return obj.size() >= PREFIX_LEN && | 261 | 5.22k | std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); | 262 | 5.22k | } |
_ZN4util9HasPrefixI9prevectorILj16EhjiELm8EEEbRKT_RKSt5arrayIhXT0_EE Line | Count | Source | 259 | 2.83k | { | 260 | 2.83k | return obj.size() >= PREFIX_LEN && | 261 | 2.83k | std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); | 262 | 2.83k | } |
|
263 | | } // namespace util |
264 | | |
265 | | #endif // BITCOIN_UTIL_STRING_H |