elements/src/util
merge-script f44e39c9d0
Merge bitcoin/bitcoin#31174: tinyformat: Add compile-time checking for literal format strings
fe39acf88f tinyformat: Add compile-time checking for literal format strings (Ryan Ofsky)
184f34f2d0 util: Support dynamic width & precision in ConstevalFormatString (Ryan Ofsky)

Pull request description:

  Add compile-time checking for literal format strings passed to `strprintf` and `tfm::format` to make sure the right number of format arguments are passed.

  There is still no compile-time checking if non-literal `std::string` or `bilingual_str` format strings are passed, but this is improved in other PRs:

  - [#31061](https://github.com/bitcoin/bitcoin/pull/31061) implements compile-time checking for translated strings
  - [#31072](https://github.com/bitcoin/bitcoin/pull/31072) increases compile-time checking by using literal strings as format strings, instead of `std::string` and `bilingual_str`
  - [#31149](https://github.com/bitcoin/bitcoin/pull/31149) may drop the `std::string`  overload for `strprintf` to [require](https://github.com/bitcoin/bitcoin/pull/31149#issuecomment-2444579999) compile-time checking

ACKs for top commit:
  maflcko:
    re-ACK fe39acf88f 🕐
  l0rinc:
    ACK fe39acf88f
  hodlinator:
    re-ACK fe39acf88f

Tree-SHA512: f1ddef0c96b9468c5ffe31b42dc19f1922583dd14f2e180b618d992c98614c5cc7db9f9cd917ef503f833bbc7dbec78e4489d0035416dce6840837e1d66d87cb
2024-11-14 10:18:44 +00:00
..
any.h refactor: Split util::AnyPtr into its own file 2023-05-20 12:03:33 +02:00
asmap.cpp streams: cache file position within AutoFile 2024-09-13 07:35:41 -04:00
asmap.h refactor: Move fs.* to util/fs.* 2023-03-23 12:55:18 +01:00
batchpriority.cpp refactor: Move ScheduleBatchPriority to its own file 2023-05-20 12:03:30 +02:00
batchpriority.h refactor: Move ScheduleBatchPriority to its own file 2023-05-20 12:03:30 +02:00
bip32.cpp Merge bitcoin/bitcoin#26076: Switch hardened derivation marker to h 2023-05-08 13:31:28 -04:00
bip32.h Switch hardened derivation marker to h in descriptors 2023-04-04 18:33:08 +02:00
bitdeque.h refactor: Fix "error C2248: cannot access private member" on MSVC 2024-04-28 07:11:24 +01:00
bitset.h util: add BitSet 2024-06-10 07:54:48 -04:00
bytevectorhash.cpp random: get rid of GetRand by inlining 2024-07-01 12:39:53 -04:00
bytevectorhash.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
chaintype.cpp testnet: Introduce Testnet4 2024-08-06 01:38:10 +02:00
chaintype.h testnet: Introduce Testnet4 2024-08-06 01:38:10 +02:00
check.cpp Make G_FUZZING constexpr, require -DBUILD_FOR_FUZZING=ON to execute a fuzz target 2024-10-31 13:51:37 +01:00
check.h Make G_FUZZING constexpr, require -DBUILD_FOR_FUZZING=ON to execute a fuzz target 2024-10-31 13:51:37 +01:00
CMakeLists.txt common: move pcp.cpp and netif.cpp files from util to common library since they depend on netaddress.cpp 2024-10-01 09:28:31 -04:00
epochguard.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
exception.cpp refactor: Extract util/exception from util/system 2023-03-13 17:09:47 +01:00
exception.h refactor: Extract util/exception from util/system 2023-03-13 17:09:47 +01:00
fastrange.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
feefrac.cpp Avoid explicitly computing diagram; compare based on chunks 2024-04-22 09:36:36 -04:00
feefrac.h clusterlin: add DepGraph::RemoveTransactions and support for holes in DepGraph 2024-10-07 13:49:35 -04:00
fs.cpp Add tests for C++20 std::u8string 2023-12-11 17:42:05 +01:00
fs.h refactor: Rename fs::path::u8string() to fs::path::utf8string() 2023-12-14 16:22:40 +01:00
fs_helpers.cpp build: Replace MAC_OSX macro with existing __APPLE__ 2024-10-24 12:29:26 +02:00
fs_helpers.h util: add perm string helper functions 2024-06-27 14:55:10 +01:00
golombrice.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
hash_type.h move-only: Add util/hash_type 2021-05-11 10:38:18 +02:00
hasher.cpp random: get rid of GetRand by inlining 2024-07-01 12:39:53 -04:00
hasher.h Bump g++ minimum supported version to 10 2023-10-30 15:12:26 +01:00
insert.h refactor: Split util::insert into its own file 2023-05-20 12:03:31 +02:00
macros.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
moneystr.cpp util: Move util/string.h functions to util namespace 2024-05-16 10:16:08 -05:00
moneystr.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
overflow.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
overloaded.h doc: Clarify C++20 comments 2024-01-05 11:22:31 +01:00
rbf.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
rbf.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
readwritefile.cpp refactor: Move fs.* to util/fs.* 2023-03-23 12:55:18 +01:00
readwritefile.h refactor: Move fs.* to util/fs.* 2023-03-23 12:55:18 +01:00
result.h refactor: Avoid copying util::Result values 2024-04-25 16:08:24 -04:00
serfloat.cpp Add platform-independent float encoder/decoder 2021-05-24 16:04:44 -07:00
serfloat.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
signalinterrupt.cpp util: Get rid of uncaught exceptions thrown by SignalInterrupt class 2023-12-04 15:39:15 -04:00
signalinterrupt.h util: Get rid of uncaught exceptions thrown by SignalInterrupt class 2023-12-04 15:39:15 -04:00
sock.cpp sock: change Sock::SendComplete() to take Span 2023-10-31 18:19:22 +01:00
sock.h sock: change Sock::SendComplete() to take Span 2023-10-31 18:19:22 +01:00
strencodings.cpp util: remove unused IsHexNumber 2024-08-23 13:53:40 +01:00
strencodings.h util: Add consteval ""_hex[_v][_u8] literals 2024-08-28 19:09:51 +02:00
string.cpp util: Move util/string.h functions to util namespace 2024-05-16 10:16:08 -05:00
string.h tinyformat: Add compile-time checking for literal format strings 2024-10-28 19:13:46 -04:00
subprocess.h tidy: modernize-use-equals-default 2024-07-08 11:12:01 +02:00
syserror.cpp scripted-diff: drop config/ subdir for bitcoin-config.h, rename to bitcoin-build-config.h 2024-10-10 12:22:12 +02:00
syserror.h Show descriptive error messages when FileCommit fails 2023-06-30 09:48:21 -04:00
task_runner.h tidy: modernize-use-equals-default 2024-07-08 11:12:01 +02:00
thread.cpp refactor: Extract util/exception from util/system 2023-03-13 17:09:47 +01:00
thread.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
threadinterrupt.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
threadinterrupt.h util: Add SignalInterrupt class and use in shutdown.cpp 2023-06-28 09:49:28 +02:00
threadnames.cpp build: Replace MAC_OSX macro with existing __APPLE__ 2024-10-24 12:29:26 +02:00
threadnames.h util: avoid using thread_local variable that has a destructor 2024-05-16 18:16:46 +02:00
time.cpp refactor: Use chrono type for g_mock_time 2024-04-15 13:34:31 +02:00
time.h Revert "time: add runtime sanity check" 2024-03-18 16:01:08 +01:00
tokenpipe.cpp scripted-diff: drop config/ subdir for bitcoin-config.h, rename to bitcoin-build-config.h 2024-10-10 12:22:12 +02:00
tokenpipe.h util: Add RAII TokenPipe 2021-03-04 18:24:00 +01:00
trace.h tracing: only prepare tracepoint args if attached 2024-10-28 14:27:47 +01:00
transaction_identifier.h refactor: remove TxidFromString 2024-07-31 16:47:39 +01:00
translation.h util: Catch translation string errors at compile time 2024-07-10 09:40:47 +02:00
types.h doc: Clarify C++20 comments 2024-01-05 11:22:31 +01:00
ui_change_type.h wallet: Do not include server symbols 2020-06-27 11:39:09 -04:00
vecdeque.h utils: add missing include 2024-06-11 16:28:11 +00:00
vector.h chainparams: add blockhash to AssumeutxoData 2023-09-30 06:38:47 -04:00