Type-erased reference for scanning memory for a scalar value within a [min, max] range.
More...
|
| constexpr | value_range_scanner_ref () noexcept=default |
| |
| template<typename Tag , typename Traits = value_range_scanner_traits<Tag, T>, std::enable_if_t< std::is_void_v< typename Traits::context_type >, int > = 0> |
| constexpr | value_range_scanner_ref (Tag) noexcept |
| |
| template<typename Tag , typename Context , typename Traits = value_range_scanner_traits<Tag, T>, std::enable_if_t<!std::is_void_v< typename Traits::context_type > &&std::is_convertible_v< const Context *, const typename Traits::context_type * >, int > = 0> |
| constexpr | value_range_scanner_ref (Tag, const Context &ctx RELOCO_LIFETIMEBOUND RELOCO_LIFETIME_CAPTURE_BY_THIS) noexcept |
| |
| template<typename Tag , typename Context , std::enable_if_t<!std::is_lvalue_reference_v< Context >, int > = 0> |
| constexpr | value_range_scanner_ref (Tag, Context &&)=delete |
| |
| expected< memory_scan_result, address_space_error > | scan (uintptr_t start_addr, size_t search_length, const T &min_val, const T &max_val, size_t stride=alignof(T)) const noexcept |
| | Scans memory for a value falling within the inclusive bounds [min_val, max_val].
|
| |
| constexpr | operator bool () const noexcept |
| |
|
| template<typename Tag , typename Traits = value_range_scanner_traits<Tag, T>, std::enable_if_t< std::is_void_v< typename Traits::context_type >, int > = 0> |
| static constexpr value_range_scanner_ref | make () noexcept |
| |
| template<typename Tag , typename Context , typename Traits = value_range_scanner_traits<Tag, T>, std::enable_if_t<!std::is_void_v< typename Traits::context_type >, int > = 0> |
| static constexpr value_range_scanner_ref | make (const Context &context RELOCO_LIFETIMEBOUND) noexcept |
| |
template<typename T>
class microfmt::value_range_scanner_ref< T >
Type-erased reference for scanning memory for a scalar value within a [min, max] range.
Abstracts the underlying memory traversal and chunking logic. Iterates over the address space at a specified stride, interpreting bytes as type T and comparing them against bounds.
- Template Parameters
-
| T | Trivially copyable type to interpret from memory. |