8 #ifndef DXLE_INC_BASIC_TYPES_HPP_ 9 #define DXLE_INC_BASIC_TYPES_HPP_ 29 template <typename T1, typename T2, enable_if_t<is_representable<T2, T1>::value, nullptr_t> =
nullptr>
48 template <typename T1, typename T2, enable_if_t<is_representable<T2, T1>::value, nullptr_t> =
nullptr>
67 template <typename T1, typename T2, enable_if_t<is_representable<T2, T1>::value, nullptr_t> =
nullptr>
86 template <typename T1, typename T2, enable_if_t<is_representable<T2, T1>::value, nullptr_t> =
nullptr>
105 template <
typename T1,
typename T2>
109 return {l.
x + r.width, l.y + r.height};
123 template <
typename T1,
typename T2>
127 return {l.
width + r.x, l.height + r.y};
141 template <
typename T1,
typename T2>
145 return {l.
x - r.width, l.y - r.height};
159 template <
typename T1,
typename T2>
163 return {l.
width - r.x, l.height - r.y};
Template class for 2D sizes specified by its coordinates width and height.
point_c< T1 > T2 DXLE_CONSTEXPR auto operator+(const point_c< T1 > &l, const point_c< T2 > &r) DXLE_NOEXCEPT_IF_EXPR(l.x+r.x) -> point_c< decltype(std::declval< std::remove_cv_t< T1 >>()+std::declval< std::remove_cv_t< T2 >>())>
#define DXLE_NOEXCEPT_IF_EXPR(EXPR)
Template class for 2D points specified by its coordinates x and y.
DXLE_CONSTEXPR counter_iterator< T > operator-(typename counter_iterator< T >::difference_type n, const counter_iterator< T > &it) DXLE_NOEXCEPT_OR_NOTHROW