Add fallback implementation for constexpr and alignof
This commit is contained in:
parent
7cb47d0f3f
commit
bca83618cd
|
@ -84,6 +84,10 @@ extern "C" void hb_free_impl(void *ptr);
|
||||||
#define nullptr NULL
|
#define nullptr NULL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef constexpr
|
||||||
|
#define constexpr const
|
||||||
|
#endif
|
||||||
|
|
||||||
// Static assertions
|
// Static assertions
|
||||||
#ifndef static_assert
|
#ifndef static_assert
|
||||||
#define static_assert(e, msg) \
|
#define static_assert(e, msg) \
|
||||||
|
@ -98,6 +102,20 @@ extern "C" void hb_free_impl(void *ptr);
|
||||||
#define thread_local
|
#define thread_local
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef alignof
|
||||||
|
#define alignof(x) _hb_alignof<x>::value;
|
||||||
|
template <typename T>
|
||||||
|
struct _hb_alignof
|
||||||
|
{
|
||||||
|
struct s
|
||||||
|
{
|
||||||
|
char c;
|
||||||
|
T t;
|
||||||
|
};
|
||||||
|
static constexpr unsigned int value = offsetof (s, t);
|
||||||
|
};
|
||||||
|
#endif // alignof
|
||||||
|
|
||||||
#endif // __cplusplus < 201103L
|
#endif // __cplusplus < 201103L
|
||||||
|
|
||||||
#if (defined(__GNUC__) || defined(__clang__)) && defined(__OPTIMIZE__)
|
#if (defined(__GNUC__) || defined(__clang__)) && defined(__OPTIMIZE__)
|
||||||
|
|
Loading…
Reference in New Issue