19struct peak_common_interval;
20struct peak_common_interval_u;
21struct peak_common_interval_f;
22struct peak_common_rectangle;
23struct peak_common_rectangle_f;
24struct peak_common_point;
25struct peak_common_point_f;
26struct peak_common_point_u;
27struct peak_common_size;
28struct peak_common_size_f;
42template <
typename Po
intType,
typename SizeType>
59struct c_type_of_<IntervalT<uint32_t>>
61 using type = peak_common_interval_u;
65struct c_type_of_<IntervalT<int32_t>>
67 using type = peak_common_interval;
71struct c_type_of_<IntervalT<float>>
73 using type = peak_common_interval_f;
77struct c_type_of_<RectangleT<int32_t, uint32_t>>
79 using type = peak_common_rectangle;
83struct c_type_of_<RectangleT<float, float>>
85 using type = peak_common_rectangle_f;
89struct c_type_of_<PointT<int32_t>>
91 using type = peak_common_point;
95struct c_type_of_<PointT<uint32_t>>
97 using type = peak_common_point_u;
101struct c_type_of_<PointT<float>>
103 using type = peak_common_point_f;
107struct c_type_of_<SizeT<uint32_t>>
109 using type = peak_common_size;
113struct c_type_of_<SizeT<float>>
115 using type = peak_common_size_f;
118template <
typename...>
127template <
typename,
typename =
void>
128struct has_c_type_of : std::false_type
132struct has_c_type_of<T, void_t<typename c_type_of_<T>::type>> : std::true_type
typename c_type_of_< Type >::type c_type_of_t
peak::common::detail::c_type_of_t< Type > * handle_of_t