33 #include <type_traits>
48 template<
typename Head,
typename... Ts>
struct _hb_head_t {
typedef Head
type; };
59 #define static_assert_expr(C) static_assert_expr<C>::value
65 #define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
67 #define hb_requires(Cond) hb_enable_if((Cond))
71 #define hb_is_same(T, T2) hb_is_same<T, T2>::value
75 #define HB_RETURN(Ret, E) -> hb_head_t<Ret, decltype ((E))> { return (E); }
76 #define HB_AUTO_RETURN(E) -> decltype ((E)) { return (E); }
77 #define HB_VOID_RETURN(E) -> hb_void_t<decltype ((E))> { (E); }
81 #define hb_prioritize hb_priority<16> ()
83 #define HB_FUNCOBJ(x) static_const x HB_UNUSED
89 template <
typename T>
static inline T hb_declval ();
90 #define hb_declval(T) (hb_declval<T> ())
118 #define hb_is_convertible(From,To) std::is_convertible<From, To>::value
120 template <
typename From,
typename To>
126 #define hb_is_cr_convertible(From,To) hb_is_cr_convertible<From, To>::value
131 template <
typename T> constexpr
auto
134 template <
typename T> constexpr
auto
139 template <
typename T>
145 operator T ()
const {
return v; }
149 template <
typename T>
155 operator T& ()
const {
return *
v; }
176 #define hb_int_min(T) hb_int_min<T>::value
189 #define hb_int_max(T) hb_int_max<T>::value
194 #define HB_DELETE_COPY_ASSIGN(TypeName) \
195 TypeName(const TypeName&) = delete; \
196 void operator=(const TypeName&) = delete
197 #define HB_DELETE_CREATE_COPY_ASSIGN(TypeName) \
198 TypeName() = delete; \
199 TypeName(const TypeName&) = delete; \
200 void operator=(const TypeName&) = delete
206 template <
typename T,
typename>
208 template <
typename T>
210 template <
typename T>
212 #define hb_unwrap_type(T) typename hb_unwrap_type<T>::type
template< typename Enum > bool operator!=(Enum lhs, QFlags< Enum > rhs)
template< typename Enum > bool operator==(Enum lhs, QFlags< Enum > rhs)
constexpr T & operator()(T &v) const
auto it unsigned count const
EGLOutputLayerEXT EGLint EGLAttrib value
GLsizei const GLfloat * v
[13]
hb_reference_wrapper(T &v)
hb_reference_wrapper(T v)
bool operator!=(const hb_reference_wrapper &o) const
bool operator==(const hb_reference_wrapper &o) const