| | 162 | #if defined(__ghs__) && (__GHS_VERSION_NUMBER >= 600) |
| | 163 | # include <boost/type_traits/is_same.hpp> |
| | 164 | # include <boost/type_traits/is_reference.hpp> |
| | 165 | # include <boost/type_traits/is_volatile.hpp> |
| | 166 | |
| | 167 | # define BOOST_IS_UNION(T) __is_union(T) |
| | 168 | # define BOOST_IS_POD(T) __is_pod(T) |
| | 169 | # define BOOST_IS_EMPTY(T) __is_empty(T) |
| | 170 | # define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T) |
| | 171 | # define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference<T>::value) |
| | 172 | # define BOOST_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T) |
| | 173 | # define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T) |
| | 174 | # define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T) |
| | 175 | # define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) && !is_volatile<T>::value && !is_reference<T>::value) |
| | 176 | # define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile<T>::value) |
| | 177 | # define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) |
| | 178 | |
| | 179 | # define BOOST_IS_ABSTRACT(T) __is_abstract(T) |
| | 180 | # define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value) |
| | 181 | # define BOOST_IS_CLASS(T) __is_class(T) |
| | 182 | # define BOOST_IS_ENUM(T) __is_enum(T) |
| | 183 | # define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) |
| | 184 | # define BOOST_ALIGNMENT_OF(T) __alignof__(T) |
| | 185 | |
| | 186 | # define BOOST_HAS_TYPE_TRAITS_INTRINSICS |
| | 187 | #endif |
| | 188 | |