1#ifndef RBIMPL_STDALIGN_H
2#define RBIMPL_STDALIGN_H
53#if defined(__cplusplus) && RBIMPL_HAS_FEATURE(cxx_alignas)
54# define RBIMPL_ALIGNAS alignas
56#elif defined(__cplusplus) && (__cplusplus >= 201103L)
57# define RBIMPL_ALIGNAS alignas
59#elif defined(__INTEL_CXX11_MODE__)
60# define RBIMPL_ALIGNAS alignas
62#elif defined(__GXX_EXPERIMENTAL_CXX0X__)
63# define RBIMPL_ALIGNAS alignas
65#elif RBIMPL_HAS_DECLSPEC_ATTRIBUTE(align)
66# define RBIMPL_ALIGNAS(_) __declspec(align(_))
68#elif RBIMPL_HAS_ATTRIBUTE(aligned)
69# define RBIMPL_ALIGNAS(_) __attribute__((__aligned__(_)))
72# define RBIMPL_ALIGNAS(_)
86#if defined(__cplusplus)
90# define RBIMPL_ALIGNOF(T) (static_cast<size_t>(ruby::rbimpl_alignof<T>::value))
106#elif RBIMPL_COMPILER_IS(MSVC)
108# define RBIMPL_ALIGNOF __alignof
110#elif defined(HAVE__ALIGNOF)
112# define RBIMPL_ALIGNOF(T) RB_GNUC_EXTENSION(_Alignof(T))
129# define RBIMPL_ALIGNOF(T) offsetof(struct { char _; T t; }, t)
#define offsetof(p_type, field)
Defines RBIMPL_HAS_ATTRIBUTE.
Defines RBIMPL_COMPILER_IS.
Defines RBIMPL_HAS_DECLSPEC_ATTRIBUTE.
Defines RBIMPL_HAS_FEATURE.
Thin wrapper to ruby/config.h.