Merge #13656: Remove the boost/algorithm/string/predicate.hpp dependency
Summary:
e3245f2e7b Removes Boost predicate.hpp dependency (251)
Pull request description:
This pull request removes the `boost/algorithm/string/predicate.hpp` dependency from the project. To replace the the `predicate.hpp` dependency from the project the function calls to `boost::algorithm::starts_with` and `boost::algorithm::ends_with` have been replaced with respectively C++11's `std::basic_string::front` and `std::basic_string::back` function calls. Refactors that were not required, but have been done anyways: - The Boost function `all` was implicitly made available via the `predicate.hpp` header. Instead of including the appropriate header, function calls to `all` have been replaced with function calls to `std::all_of`. - The `boost::algorithm::is_digit` predicate has been replaced with a custom `IsDigit` function that is locale independent and ASCII deterministic.
Tree-SHA512: 22dda6adfb4d7ac0cabac8cc33e8fb8330c899805acc1ae4ede402c4b11ea75a399414b389dfaa3650d23b47f41351b4650077af9005d598fbe48d5277bdc320
Backport of Core PR13656
https://github.com/bitcoin/bitcoin/pull/13656/
Test Plan:
make check
Undo the change to the linter script
arc lint --everything
Should output:
Advice (BOOST_DEPENDENCY) Good job! A boost dependency has been removed. Good job! The Boost dependency "boost/algorithm/string/predicate.hpp" is no longer used. Please remove it from EXPECTED_BOOST_INCLUDES in <path>/bitcoin-abc/test/lint/lint-boost-dependencies.sh to make sure this dependency is not accidentally reintroduced.
Reviewers: deadalnix, Fabien, jasonbcox, O1 Bitcoin ABC, #bitcoin_abc, markblundeberg
Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, markblundeberg
Subscribers: markblundeberg
Differential Revision: https://reviews.bitcoinabc.org/D4727