31#ifndef ETL_DETERMINE_BUILTIN_SUPPORT_H_INCLUDED
32#define ETL_DETERMINE_BUILTIN_SUPPORT_H_INCLUDED
34#if defined(ETL_USE_TYPE_TRAITS_BUILTINS)
35 #if !defined(ETL_USING_BUILTIN_IS_ASSIGNABLE)
36 #define ETL_USING_BUILTIN_IS_ASSIGNABLE 1
39 #if !defined(ETL_USING_BUILTIN_IS_CONSTRUCTIBLE)
40 #define ETL_USING_BUILTIN_IS_CONSTRUCTIBLE 1
43 #if !defined(ETL_USING_BUILTIN_IS_TRIVIALLY_CONSTRUCTIBLE)
44 #define ETL_USING_BUILTIN_IS_TRIVIALLY_CONSTRUCTIBLE 1
47 #if !defined(ETL_USING_BUILTIN_IS_TRIVIALLY_DESTRUCTIBLE)
48 #define ETL_USING_BUILTIN_IS_TRIVIALLY_DESTRUCTIBLE 1
51 #if !defined(ETL_USING_BUILTIN_IS_TRIVIALLY_COPYABLE)
52 #define ETL_USING_BUILTIN_IS_TRIVIALLY_COPYABLE 1
56#if defined(__has_builtin)
57 #if !defined(ETL_USING_BUILTIN_IS_ASSIGNABLE)
58 #define ETL_USING_BUILTIN_IS_ASSIGNABLE __has_builtin(__is_assignable)
61 #if !defined(ETL_USING_BUILTIN_IS_CONSTRUCTIBLE)
62 #define ETL_USING_BUILTIN_IS_CONSTRUCTIBLE __has_builtin(__is_constructible)
65 #if !defined(ETL_USING_BUILTIN_IS_TRIVIALLY_CONSTRUCTIBLE)
66 #define ETL_USING_BUILTIN_IS_TRIVIALLY_CONSTRUCTIBLE (__has_builtin(__has_trivial_constructor) || __has_builtin(__is_trivially_constructible))
69 #if !defined(ETL_USING_BUILTIN_IS_TRIVIALLY_DESTRUCTIBLE)
70 #define ETL_USING_BUILTIN_IS_TRIVIALLY_DESTRUCTIBLE (__has_builtin(__has_trivial_destructor) || __has_builtin(__is_trivially_destructible))
73 #if !defined(ETL_USING_BUILTIN_IS_TRIVIALLY_COPYABLE)
74 #define ETL_USING_BUILTIN_IS_TRIVIALLY_COPYABLE (__has_builtin(__has_trivial_copy) || __has_builtin(__is_trivially_copyable))
79#if !defined(ETL_USING_BUILTIN_IS_ASSIGNABLE)
80 #define ETL_USING_BUILTIN_IS_ASSIGNABLE 0
83#if !defined(ETL_USING_BUILTIN_IS_CONSTRUCTIBLE)
84 #define ETL_USING_BUILTIN_IS_CONSTRUCTIBLE 0
87#if !defined(ETL_USING_BUILTIN_IS_TRIVIALLY_CONSTRUCTIBLE)
88 #define ETL_USING_BUILTIN_IS_TRIVIALLY_CONSTRUCTIBLE 0
91#if !defined(ETL_USING_BUILTIN_IS_TRIVIALLY_DESTRUCTIBLE)
92 #define ETL_USING_BUILTIN_IS_TRIVIALLY_DESTRUCTIBLE 0
95#if !defined(ETL_USING_BUILTIN_IS_TRIVIALLY_COPYABLE)
96 #define ETL_USING_BUILTIN_IS_TRIVIALLY_COPYABLE 0
105 static ETL_CONSTANT
bool using_builtin_is_assignable = (ETL_USING_BUILTIN_IS_ASSIGNABLE == 1);
106 static ETL_CONSTANT
bool using_builtin_is_constructible = (ETL_USING_BUILTIN_IS_CONSTRUCTIBLE == 1);
107 static ETL_CONSTANT
bool using_builtin_is_trivially_constructible = (ETL_USING_BUILTIN_IS_TRIVIALLY_CONSTRUCTIBLE == 1);
108 static ETL_CONSTANT
bool using_builtin_is_trivially_destructible = (ETL_USING_BUILTIN_IS_TRIVIALLY_DESTRUCTIBLE == 1);
109 static ETL_CONSTANT
bool using_builtin_is_trivially_copyable = (ETL_USING_BUILTIN_IS_TRIVIALLY_COPYABLE == 1);
bitset_ext
Definition: absolute.h:38