11 #include <type_traits>
16 inline namespace _V1 {
20 namespace experimental {
26 template <
class _Tp>
struct is_genfloat;
28 template <
class _Tp,
class _Enable =
void>
class complex;
31 class complex<_Tp, typename
std::enable_if_t<is_genfloat<_Tp>::value>>;
38 struct
is_genfloat : std::bool_constant<std::is_same_v<_Tp, double> ||
39 std::is_same_v<_Tp, float> ||
40 std::is_same_v<_Tp, sycl::half>> {};
44 : std::bool_constant<std::is_same_v<_Tp, complex<double>> ||
45 std::is_same_v<_Tp, complex<float>> ||
46 std::is_same_v<_Tp, complex<sycl::half>>> {};
52 #define _SYCL_EXT_CPLX_INLINE_VISIBILITY \
53 inline __attribute__((__visibility__("hidden"), __always_inline__))