QtBase  v6.3.1
Classes | Macros | Functions | Variables
hb-algs.hh File Reference
#include "hb.hh"
#include "hb-meta.hh"
#include "hb-null.hh"
#include "hb-number.hh"
#include <algorithm>
#include <initializer_list>
#include <functional>
#include <new>
Include dependency graph for hb-algs.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  BEInt< Type, 1 >
 
struct  BEInt< Type, 2 >
 
struct  BEInt< Type, 3 >
 
struct  BEInt< Type, 4 >
 
struct  hb_partial_t< Pos, Appl, V >
 
struct  hb_pair_t< T1, T2 >
 
struct  hb_vector_size_t< elt_t, byte_size >
 

Macros

#define HB_MARK_AS_FLAG_T(T)
 
#define FLAG(x)   (static_assert_expr ((unsigned)(x) < 32) + (((uint32_t) 1U) << (unsigned)(x)))
 
#define FLAG_UNSAFE(x)   ((unsigned)(x) < 32 ? (((uint32_t) 1U) << (unsigned)(x)) : 0)
 
#define FLAG_RANGE(x, y)   (static_assert_expr ((x) < (y)) + FLAG(y+1) - FLAG(x))
 
#define FLAG64(x)   (static_assert_expr ((unsigned)(x) < 64) + (((uint64_t) 1ULL) << (unsigned)(x)))
 
#define FLAG64_UNSAFE(x)   ((unsigned)(x) < 64 ? (((uint64_t) 1ULL) << (unsigned)(x)) : 0)
 
#define roundf(x)   _hb_roundf(x)
 
#define HB_CODEPOINT_ENCODE3(x, y, z)   (((uint64_t) (x) << 42) | ((uint64_t) (y) << 21) | (uint64_t) (z))
 
#define HB_CODEPOINT_DECODE3_1(v)   ((hb_codepoint_t) ((v) >> 42))
 
#define HB_CODEPOINT_DECODE3_2(v)   ((hb_codepoint_t) ((v) >> 21) & 0x1FFFFFu)
 
#define HB_CODEPOINT_DECODE3_3(v)   ((hb_codepoint_t) (v) & 0x1FFFFFu)
 
#define HB_CODEPOINT_ENCODE3_11_7_14(x, y, z)   (((uint32_t) ((x) & 0x07FFu) << 21) | (((uint32_t) (y) & 0x007Fu) << 14) | (uint32_t) ((z) & 0x3FFFu))
 
#define HB_CODEPOINT_DECODE3_11_7_14_1(v)   ((hb_codepoint_t) ((v) >> 21))
 
#define HB_CODEPOINT_DECODE3_11_7_14_2(v)   ((hb_codepoint_t) (((v) >> 14) & 0x007Fu) | 0x0300)
 
#define HB_CODEPOINT_DECODE3_11_7_14_3(v)   ((hb_codepoint_t) (v) & 0x3FFFu)
 
#define HB_PARTIALIZE(Pos)
 
#define hb_pair_t(T1, T2)   hb_pair_t<T1, T2>
 
#define ARRAY_LENGTH_CONST(__array)   ((signed int) (sizeof (__array) / sizeof (__array[0])))
 
#define SORT_R_SWAP(a, b, tmp)   ((tmp) = (a), (a) = (b), (b) = (tmp))
 

Functions

struct {
HB_FUNCOBJ (hb_identity)
 
struct {
HB_FUNCOBJ (hb_lidentity)
 
template<typename T >
constexpr Toperator() (T &v) const
 
template<typename T >
constexpr hb_remove_reference< Toperator() (T &&v) const
 
struct {
HB_FUNCOBJ (hb_ridentity)
 
struct {
HB_FUNCOBJ (hb_bool)
 
template<typename T >
constexpr bool operator() (T &&v) const
 
struct {
HB_FUNCOBJ (hb_hash)
 
struct {
HB_FUNCOBJ (hb_invoke)
 
template<unsigned Pos = 1, typename Appl , typename V >
auto hb_partial (Appl &&a, V &&v) HB_AUTO_RETURN((hb_partial_t< Pos
 
auto V (a, v))) struct
 
 HB_FUNCOBJ (hb_has)
 
struct {
HB_FUNCOBJ (hb_match)
 
struct {
HB_FUNCOBJ (hb_get)
 
struct {
HB_FUNCOBJ (hb_equal)
 
struct {
HB_FUNCOBJ (hb_first)
 
template<typename Pair >
constexpr Pair::first_t operator() (const Pair &pair) const
 
struct {
HB_FUNCOBJ (hb_second)
 
template<typename Pair >
constexpr Pair::second_t operator() (const Pair &pair) const
 
struct {
HB_FUNCOBJ (hb_min)
 
struct {
HB_FUNCOBJ (hb_max)
 
struct {
HB_FUNCOBJ (hb_clamp)
 
struct {
HB_FUNCOBJ (hb_swap)
 
template<typename T >
void operator() (T &a, T &b) const
 
struct {
HB_FUNCOBJ (hb_bitwise_and)
 
 HB_PARTIALIZE (2)
 
struct {
HB_FUNCOBJ (hb_bitwise_or)
 
struct {
HB_FUNCOBJ (hb_bitwise_xor)
 
struct {
HB_FUNCOBJ (hb_bitwise_lt)
 
struct {
HB_FUNCOBJ (hb_bitwise_gt)
 
struct {
HB_FUNCOBJ (hb_bitwise_le)
 
struct {
HB_FUNCOBJ (hb_bitwise_ge)
 
struct {
HB_FUNCOBJ (hb_bitwise_neg)
 
struct {
HB_FUNCOBJ (hb_add)
 
struct {
HB_FUNCOBJ (hb_sub)
 
struct {
HB_FUNCOBJ (hb_rsub)
 
struct {
HB_FUNCOBJ (hb_mul)
 
struct {
HB_FUNCOBJ (hb_div)
 
struct {
HB_FUNCOBJ (hb_mod)
 
struct {
HB_FUNCOBJ (hb_pos)
 
struct {
HB_FUNCOBJ (hb_neg)
 
struct {
HB_FUNCOBJ (hb_inc)
 
struct {
HB_FUNCOBJ (hb_dec)
 

Variables

struct hb_partial_t HB_FUNCOBJ
 
auto Appl
 

Macro Definition Documentation

◆ ARRAY_LENGTH_CONST

#define ARRAY_LENGTH_CONST (   __array)    ((signed int) (sizeof (__array) / sizeof (__array[0])))

Definition at line 795 of file hb-algs.hh.

◆ FLAG

#define FLAG (   x)    (static_assert_expr ((unsigned)(x) < 32) + (((uint32_t) 1U) << (unsigned)(x)))

Definition at line 73 of file hb-algs.hh.

◆ FLAG64

#define FLAG64 (   x)    (static_assert_expr ((unsigned)(x) < 64) + (((uint64_t) 1ULL) << (unsigned)(x)))

Definition at line 76 of file hb-algs.hh.

◆ FLAG64_UNSAFE

#define FLAG64_UNSAFE (   x)    ((unsigned)(x) < 64 ? (((uint64_t) 1ULL) << (unsigned)(x)) : 0)

Definition at line 77 of file hb-algs.hh.

◆ FLAG_RANGE

#define FLAG_RANGE (   x,
  y 
)    (static_assert_expr ((x) < (y)) + FLAG(y+1) - FLAG(x))

Definition at line 75 of file hb-algs.hh.

◆ FLAG_UNSAFE

#define FLAG_UNSAFE (   x)    ((unsigned)(x) < 32 ? (((uint32_t) 1U) << (unsigned)(x)) : 0)

Definition at line 74 of file hb-algs.hh.

◆ HB_CODEPOINT_DECODE3_1

#define HB_CODEPOINT_DECODE3_1 (   v)    ((hb_codepoint_t) ((v) >> 42))

Definition at line 171 of file hb-algs.hh.

◆ HB_CODEPOINT_DECODE3_11_7_14_1

#define HB_CODEPOINT_DECODE3_11_7_14_1 (   v)    ((hb_codepoint_t) ((v) >> 21))

Definition at line 177 of file hb-algs.hh.

◆ HB_CODEPOINT_DECODE3_11_7_14_2

#define HB_CODEPOINT_DECODE3_11_7_14_2 (   v)    ((hb_codepoint_t) (((v) >> 14) & 0x007Fu) | 0x0300)

Definition at line 178 of file hb-algs.hh.

◆ HB_CODEPOINT_DECODE3_11_7_14_3

#define HB_CODEPOINT_DECODE3_11_7_14_3 (   v)    ((hb_codepoint_t) (v) & 0x3FFFu)

Definition at line 179 of file hb-algs.hh.

◆ HB_CODEPOINT_DECODE3_2

#define HB_CODEPOINT_DECODE3_2 (   v)    ((hb_codepoint_t) ((v) >> 21) & 0x1FFFFFu)

Definition at line 172 of file hb-algs.hh.

◆ HB_CODEPOINT_DECODE3_3

#define HB_CODEPOINT_DECODE3_3 (   v)    ((hb_codepoint_t) (v) & 0x1FFFFFu)

Definition at line 173 of file hb-algs.hh.

◆ HB_CODEPOINT_ENCODE3

#define HB_CODEPOINT_ENCODE3 (   x,
  y,
  z 
)    (((uint64_t) (x) << 42) | ((uint64_t) (y) << 21) | (uint64_t) (z))

Definition at line 170 of file hb-algs.hh.

◆ HB_CODEPOINT_ENCODE3_11_7_14

#define HB_CODEPOINT_ENCODE3_11_7_14 (   x,
  y,
  z 
)    (((uint32_t) ((x) & 0x07FFu) << 21) | (((uint32_t) (y) & 0x007Fu) << 14) | (uint32_t) ((z) & 0x3FFFu))

Definition at line 176 of file hb-algs.hh.

◆ HB_MARK_AS_FLAG_T

#define HB_MARK_AS_FLAG_T (   T)
Value:
extern "C++" { \
static inline constexpr T operator | (T l, T r) { return T ((unsigned) l | (unsigned) r); } \
static inline constexpr T operator & (T l, T r) { return T ((unsigned) l & (unsigned) r); } \
static inline constexpr T operator ^ (T l, T r) { return T ((unsigned) l ^ (unsigned) r); } \
static inline constexpr T operator ~ (T r) { return T (~(unsigned int) r); } \
static inline T& operator |= (T &l, T r) { l = l | r; return l; } \
static inline T& operator &= (T& l, T r) { l = l & r; return l; } \
static inline T& operator ^= (T& l, T r) { l = l ^ r; return l; } \
} \
static_assert (true, "")
QBitArray operator^(const QBitArray &a1, const QBitArray &a2)
Definition: qbitarray.cpp:709
QBitArray operator|(const QBitArray &a1, const QBitArray &a2)
Definition: qbitarray.cpp:686
QBitArray operator&(const QBitArray &a1, const QBitArray &a2)
Definition: qbitarray.cpp:663
#define T(x)
Definition: main.cpp:42
GLboolean r
[2]
QUrl::FormattingOptions & operator|=(QUrl::FormattingOptions &i, QUrl::ComponentFormattingOptions f)
Definition: qurl.h:327
Definition: main.cpp:38

Definition at line 57 of file hb-algs.hh.

◆ hb_pair_t

#define hb_pair_t (   T1,
  T2 
)    hb_pair_t<T1, T2>

Definition at line 517 of file hb-algs.hh.

◆ HB_PARTIALIZE

#define HB_PARTIALIZE (   Pos)
Value:
template <typename _T> \
auto operator () (_T&& _v) const HB_AUTO_RETURN \
(hb_partial<Pos> (+this, std::forward<_T> (_v))) \
static_assert (true, "")
constexpr T & operator()(T &v) const
Definition: hb-algs.hh:2
#define HB_AUTO_RETURN(E)
Definition: hb-meta.hh:76
#define _T(x)
Definition: md4c.c:61

◆ roundf

#define roundf (   x)    _hb_roundf(x)

Definition at line 165 of file hb-algs.hh.

◆ SORT_R_SWAP

#define SORT_R_SWAP (   a,
  b,
  tmp 
)    ((tmp) = (a), (a) = (b), (b) = (tmp))

Definition at line 959 of file hb-algs.hh.

Function Documentation

◆ HB_FUNCOBJ() [1/34]

struct @103 HB_FUNCOBJ ( hb_add  )

◆ HB_FUNCOBJ() [2/34]

struct @95 HB_FUNCOBJ ( hb_bitwise_and  )

◆ HB_FUNCOBJ() [3/34]

struct @101 HB_FUNCOBJ ( hb_bitwise_ge  )

◆ HB_FUNCOBJ() [4/34]

struct @99 HB_FUNCOBJ ( hb_bitwise_gt  )

◆ HB_FUNCOBJ() [5/34]

struct @100 HB_FUNCOBJ ( hb_bitwise_le  )

◆ HB_FUNCOBJ() [6/34]

struct @98 HB_FUNCOBJ ( hb_bitwise_lt  )

◆ HB_FUNCOBJ() [7/34]

struct @102 HB_FUNCOBJ ( hb_bitwise_neg  )

◆ HB_FUNCOBJ() [8/34]

struct @96 HB_FUNCOBJ ( hb_bitwise_or  )

◆ HB_FUNCOBJ() [9/34]

struct @97 HB_FUNCOBJ ( hb_bitwise_xor  )

◆ HB_FUNCOBJ() [10/34]

struct @83 HB_FUNCOBJ ( hb_bool  )

◆ HB_FUNCOBJ() [11/34]

struct @93 HB_FUNCOBJ ( hb_clamp  )

◆ HB_FUNCOBJ() [12/34]

struct @112 HB_FUNCOBJ ( hb_dec  )

◆ HB_FUNCOBJ() [13/34]

struct @107 HB_FUNCOBJ ( hb_div  )

◆ HB_FUNCOBJ() [14/34]

struct @88 HB_FUNCOBJ ( hb_equal  )

◆ HB_FUNCOBJ() [15/34]

struct @89 HB_FUNCOBJ ( hb_first  )

◆ HB_FUNCOBJ() [16/34]

struct @87 HB_FUNCOBJ ( hb_get  )

◆ HB_FUNCOBJ() [17/34]

HB_FUNCOBJ ( hb_has  )

◆ HB_FUNCOBJ() [18/34]

struct @84 HB_FUNCOBJ ( hb_hash  )

◆ HB_FUNCOBJ() [19/34]

struct @80 HB_FUNCOBJ ( hb_identity  )

◆ HB_FUNCOBJ() [20/34]

struct @111 HB_FUNCOBJ ( hb_inc  )

◆ HB_FUNCOBJ() [21/34]

struct @85 HB_FUNCOBJ ( hb_invoke  )

◆ HB_FUNCOBJ() [22/34]

struct @81 HB_FUNCOBJ ( hb_lidentity  )

◆ HB_FUNCOBJ() [23/34]

struct @86 HB_FUNCOBJ ( hb_match  )

◆ HB_FUNCOBJ() [24/34]

struct @92 HB_FUNCOBJ ( hb_max  )

◆ HB_FUNCOBJ() [25/34]

struct @91 HB_FUNCOBJ ( hb_min  )

◆ HB_FUNCOBJ() [26/34]

struct @108 HB_FUNCOBJ ( hb_mod  )

◆ HB_FUNCOBJ() [27/34]

struct @106 HB_FUNCOBJ ( hb_mul  )

◆ HB_FUNCOBJ() [28/34]

struct @110 HB_FUNCOBJ ( hb_neg  )

◆ HB_FUNCOBJ() [29/34]

struct @109 HB_FUNCOBJ ( hb_pos  )

◆ HB_FUNCOBJ() [30/34]

struct @82 HB_FUNCOBJ ( hb_ridentity  )

◆ HB_FUNCOBJ() [31/34]

struct @105 HB_FUNCOBJ ( hb_rsub  )

◆ HB_FUNCOBJ() [32/34]

struct @90 HB_FUNCOBJ ( hb_second  )

◆ HB_FUNCOBJ() [33/34]

struct @104 HB_FUNCOBJ ( hb_sub  )

◆ HB_FUNCOBJ() [34/34]

struct @94 HB_FUNCOBJ ( hb_swap  )

◆ hb_partial()

template<unsigned Pos = 1, typename Appl , typename V >
auto hb_partial ( Appl &&  a,
V &&  v 
)

◆ HB_PARTIALIZE()

HB_PARTIALIZE ( )

◆ operator()() [1/6]

template<typename Pair >
constexpr Pair::second_t HB_FUNCOBJ::operator() ( const Pair pair) const
constexpr

Definition at line 1 of file hb-algs.hh.

◆ operator()() [2/6]

template<typename Pair >
constexpr Pair::first_t HB_FUNCOBJ::operator() ( const Pair pair) const
constexpr

Definition at line 1 of file hb-algs.hh.

◆ operator()() [3/6]

template<typename T >
constexpr bool HB_FUNCOBJ::operator() ( T &&  v) const
constexpr

Definition at line 1 of file hb-algs.hh.

◆ operator()() [4/6]

template<typename T >
constexpr hb_remove_reference< T > operator() ( T &&  v) const
constexpr

Definition at line 5 of file hb-algs.hh.

◆ operator()() [5/6]

template<typename T >
void HB_FUNCOBJ::operator() ( T a,
T b 
) const

Definition at line 1 of file hb-algs.hh.

◆ operator()() [6/6]

template<typename T >
constexpr T& HB_FUNCOBJ::operator() ( T v) const
constexpr

Definition at line 2 of file hb-algs.hh.

Here is the caller graph for this function:

◆ V()

auto V ( a  ,
v   
)

Definition at line 317 of file hb-algs.hh.

Here is the caller graph for this function:

Variable Documentation

◆ Appl

auto Appl

Definition at line 317 of file hb-algs.hh.

◆ HB_FUNCOBJ

struct hb_unzip_t HB_FUNCOBJ