HomePhabricator

Merge #13656: Remove the boost/algorithm/string/predicate.hpp dependency

Description

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