Files
rippled/include/xrpl/basics
Alex Kremer 1506e65558 refactor: Update to Boost 1.88 (#5570)
This updates Boost to 1.88, which is needed because Clio wants to move to 1.88 as that fixes several ASAN false positives around coroutine usage. In order for Clio to move to newer boost, libXRPL needs to move too. Hence the changes in this PR. A lot has changed between 1.83 and 1.88 so there are lots of changes in the diff, especially in regards to Boost.Asio and coroutines in particular.
2025-08-27 09:34:50 +00:00
..
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:14 -05:00
2025-07-10 18:15:42 +00:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:16 -05:00
2025-07-10 18:15:42 +00:00
2024-06-20 13:57:16 -05:00
2024-10-15 18:27:56 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:14 -05:00
2024-06-20 13:57:14 -05:00

Basics

Utility functions and classes.

ripple/basic should contain no dependencies on other modules.

Choosing a rippled container.

  • std::vector

    • For ordered containers with most insertions or erases at the end.
  • std::deque

    • For ordered containers with most insertions or erases at the start or end.
  • std::list

    • For ordered containers with inserts and erases to the middle.
    • For containers with iterators stable over insert and erase.
    • Generally slower and bigger than std::vector or std::deque except for those cases.
  • std::set

    • For sorted containers.
  • ripple::hash_set

    • Where inserts and contains need to be O(1).
    • For "small" sets, std::set might be faster and smaller.
  • ripple::hardened_hash_set

The following container is deprecated

  • std::unordered_set
  • Use ripple::hash_set instead, which uses a better hashing algorithm.
  • Or use ripple::hardened_hash_set to prevent algorithmic complexity attacks.