12template <
typename NUMBER >
14 std::is_integral_v < ::std::decay_t < NUMBER > > ||
15 std::is_enum_v < ::std::decay_t < NUMBER > > ||
16 std::is_floating_point_v < ::std::decay_t < NUMBER > >;
19template <
typename POINT >
22 {point.x}->prototype_number;
23 {point.y}->prototype_number;
27template <
typename POINT >
30 {point.x}->prototype_number;
31 {point.y}->prototype_number;
35template <
typename POLE >
38 {pole.x}->prototype_number;
39 {pole.y}->prototype_number;
40 {pole.z}->prototype_number;
44template <
typename POINT >
52template <
typename SIZE >
60template <
typename ::i32_size >
68template <
typename DIMENSION >
76template <
typename RECTANGLE >
86template <
typename RECTANGLE >
96template <
typename RECTANGLE >
106template <
typename RECTANGLE >
109 {rectangle.origin}->raw_primitive_point;
110 {rectangle.size}->prototype_dimension;
125template < prototype_number NUMBER >
135template < prototype_number NUMBER >
139template < prototype_number NUMBER >
143template < prototype_number NUMBER >
153template < prototype_number NUMBER1, prototype_number NUMBER2 >
154inline void copy(NUMBER1& number1,
const NUMBER2& number2)
157 number1 = (NUMBER1)number2;
167template < prototype_XY POINT1, prototype_po
int POINT2 >
168void copy(POINT1 point1,
const POINT2& point2)
171 point1.X = (
decltype(POINT1::X))point2.x;
172 point1.Y = (
decltype(POINT1::Y))point2.y;
177template < prototype_po
int POINT1, prototype_XY POINT2 >
178void copy(POINT1& point1,
const POINT2& point2)
181 point1.x = (
decltype(POINT1::x))point2.X;
182 point1.y = (
decltype(POINT1::y))point2.Y;
187template < prototype_rectangle RECTANGLE1, prototype_rectangle RECTANGLE2 >
188inline void copy(RECTANGLE1 & rectangle1,
const RECTANGLE2 & rectangle2)
191 rectangle1.left = (::decay<
decltype(rectangle1.left)>)rectangle2.left;
192 rectangle1.top = (::decay<
decltype(rectangle1.top)>)rectangle2.top;
193 rectangle1.right = (::decay<
decltype(rectangle1.right)>)rectangle2.right;
194 rectangle1.bottom = (::decay<
decltype(rectangle1.bottom)>)rectangle2.bottom;
199template < prototype_XYDim XYDim, prototype_rectangle RECTANGLE >
200void copy(XYDim& xydim,
const RECTANGLE& rectangle)
203 xydim.X = (
decltype(XYDim::X))rectangle.left;
204 xydim.Y = (
decltype(XYDim::Y))rectangle.top;
205 xydim.Width = (
decltype(XYDim::Width))(rectangle.right - rectangle.left);
206 xydim.Height = (
decltype(XYDim::Height))(rectangle.bottom - rectangle.top);
211template < prototype_xydim XYDIM, prototype_rectangle RECTANGLE >
212void copy(XYDIM& xydim,
const RECTANGLE& rectangle)
215 xydim.x = (
decltype(XYDIM::X))rectangle.left;
216 xydim.y = (
decltype(XYDIM::Y))rectangle.top;
217 xydim.width = (
decltype(XYDIM::Width))(rectangle.right - rectangle.left);
218 xydim.height = (
decltype(XYDIM::Height))(rectangle.bottom - rectangle.top);
223template < prototype_XYDim XYDim1, prototype_XYDim XYDim2 >
224void copy(XYDim1& xydim1,
const XYDim2& xydim2)
227 xydim1.X = (
decltype(XYDim1::X))xydim2.X;
228 xydim1.Y = (
decltype(XYDim1::Y))xydim2.Y;
229 xydim1.Width = (
decltype(XYDim1::Width))xydim2.Width;
230 xydim1.Height = (
decltype(XYDim1::Height))xydim2.Height;
235template < prototype_po
int POINT1, prototype_po
int POINT2 >
236void copy(POINT1& point1,
const POINT2& point2)
239 point1.x = (const ::std::decay_t <
decltype(point1.x)>&)point2.x;
240 point1.y = (const ::std::decay_t <
decltype(point1.y)>&)point2.y;
245template < prototype_po
int POINT1, raw_primitive_po
int POINT2 >
246void copy(POINT1& point1,
const POINT2& point2)
249 point1.x = (const ::std::decay_t <
decltype(point1.x)>&)point2.x;
250 point1.y = (const ::std::decay_t <
decltype(point1.y)>&)point2.y;
254template < raw_primitive_po
int POINT1, prototype_po
int POINT2 >
255void copy(POINT1& point1,
const POINT2& point2)
258 point1.x = (const ::std::decay_t <
decltype(point1.x)>&)point2.x;
259 point1.y = (const ::std::decay_t <
decltype(point1.y)>&)point2.y;
264template < prototype_po
int POINT, prototype_size SIZE >
265void copy(POINT& point,
const SIZE& size)
268 point.x = (const ::std::decay_t <
decltype(point.x)>&)size.cx;
269 point.y = (const ::std::decay_t <
decltype(point.y) > &)size.cy;
274template < prototype_size SIZE_TYPE1, prototype_size SIZE_TYPE2 >
275void copy(SIZE_TYPE1& size1,
const SIZE_TYPE2& size2)
278 size1.cx = (
decltype(SIZE_TYPE1::cx))size2.cx;
279 size1.cy = (
decltype(SIZE_TYPE1::cy))size2.cy;
Definition rectangle.h:49
Definition _aaa_other_initial_concepts.h:61
Definition _aaa_other_initial_concepts.h:87
Definition _aaa_other_initial_concepts.h:45
Definition _aaa_other_initial_concepts.h:69
Definition _aaa_other_initial_concepts.h:13
Definition _aaa_other_initial_concepts.h:107
Definition _aaa_other_initial_concepts.h:28
Definition _aaa_other_initial_concepts.h:36
Definition _aaa_other_initial_concepts.h:77
Definition _aaa_other_initial_concepts.h:53
Definition _aaa_other_initial_concepts.h:97
Definition _aaa_other_initial_concepts.h:20
Definition _forward_declaration.h:2520