acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
pointer2.h
1
#pragma once
2
3
//CLASS_DECL_ACME void throw_resource_exception(const ::scoped_string & scopedstr);
4
5
//template < class T >
6
//inline pointer < T >::pointer(lparam& lparam)
7
//{
8
//
9
// m_pparticle = (::particle*)(::iptr)lparam.m_lparam;
10
// m_p = dynamic_cast <T*>(m_pparticle);
11
// lparam.m_lparam = 0;
12
//
13
//}
14
//
15
//
24
//template < class T >
25
//inline pointer < T > ::pointer() :
26
// m_p(nullptr),
27
// m_pparticle(nullptr)
28
//{
29
//
30
//}
31
//
32
//
33
//template < class T >
34
//inline pointer < T > ::pointer(nullptr_t):
35
// m_p(nullptr),
36
// m_pparticle(nullptr)
37
//{
38
//
39
//}
40
//
41
//template < class T >
42
//template < typename T2 >
43
//inline pointer < T > ::pointer(enum_move_transfer, T2 * p)
44
//{
45
//
46
// if(::is_set(p))
47
// {
48
//
49
// m_p = dynamic_cast < T * > (p);
50
//
51
// m_pparticle = m_p;
52
//
53
// if(::is_null(m_p))
54
// {
55
//
56
// ::release(p);
57
//
58
// m_p = nullptr;
59
//
60
// m_pparticle = nullptr;
61
//
62
// throw ::resource_exception("OBJECT * p is not of type T (pointer < T >).");
63
//
64
// }
65
//
66
// }
67
// else
68
// {
69
//
70
// m_p = nullptr;
71
//
72
// m_pparticle = nullptr;
73
//
74
// }
75
//
76
//}
77
//
78
//
79
//template < class T >
80
//inline pointer < T > ::pointer(const pointer & t) :
81
// m_p(t.m_p),
82
// m_pparticle(t.m_pparticle)
83
//{
84
//
85
// if (::is_set(m_p))
86
// {
87
//
88
// m_pparticle->increment_reference_count();
89
//
90
// }
91
//
92
//}
93
//
94
//
95
//template < class T >
96
//inline pointer < T > ::pointer(pointer && t) :
97
//m_p(t.m_p),
98
//m_pparticle(t.m_pparticle)
99
//{
100
//
101
// t.m_p = nullptr;
102
//
103
// t.m_pparticle = nullptr;
104
//
105
//}
106
//
107
//
108
//
119
//
120
//
121
//
122
//template < class T >
123
//inline pointer < T > ::~pointer()
124
//{
125
//
126
// release();
127
//
128
//}
129
//
130
//
131
//template < class T >
132
//inline T * pointer < T > ::operator ->()
133
//{
134
//
135
// return m_p;
136
//
137
//}
138
//
139
//
140
//template < class T >
141
//inline T * pointer < T > ::operator ->() const
142
//{
143
//
144
// return m_p;
145
//
146
//}
147
//
148
//
149
//template < class T >
150
//inline T & pointer < T > ::operator * ()
151
//{
152
//
153
// return *m_p;
154
//
155
//}
156
//
157
//
158
//template < class T >
159
//inline T & pointer < T > ::operator * () const
160
//{
161
//
162
// return *m_p;
163
//
164
//}
165
//
166
//
167
//template < class T >
168
//inline pointer < T > ::operator T * ()
169
//{
170
//
171
// return m_p;
172
//
173
//}
174
//
175
//
176
//template < class T >
177
//inline pointer < T > ::operator T * const () const
178
//{
179
//
180
// return m_p;
181
//
182
//}
183
//
184
//
185
//template < class T >
186
//inline T * pointer < T > ::get()
187
//{
188
//
189
// return m_p;
190
//
191
//}
192
//
193
//
194
//template < class T >
195
//inline const T * pointer < T > ::get() const
196
//{
197
//
198
// return m_p;
199
//
200
//}
201
//
202
//
203
//template < class T >
204
//inline bool pointer < T > ::is_null() const
205
//{
206
//
207
// return ::is_null(m_p);
208
//
209
//}
210
//
211
//
212
//template < class T >
213
//inline bool pointer < T > ::is_set() const
214
//{
215
//
216
// return ::is_set(m_p);
217
//
218
//}
219
//
237
//
238
//
239
//template < class T >
240
//T* __dynamic_cast(const T* p)
241
//{
242
//
243
// return (T*)p;
244
//
245
//}
246
//
247
//template < class T, typename T2 >
248
//T * __dynamic_cast(const T2 * p)
249
//{
250
// return dynamic_cast <T*>((T2*)p);
251
//}
252
//
253
//template < class T >
254
//template < typename T2 >
255
//inline pointer < T > & pointer < T > ::reset (T2 * pNew)
256
//{
257
//
258
// if (::is_null(pNew))
259
// {
260
//
261
// m_pparticle = nullptr;
262
//
263
// ::release(m_p);
264
//
265
// }
266
// else
267
// {
268
//
269
// T* p;
270
//
271
// __dynamic_cast(p, pNew);
272
//
273
// if (m_p != p)
274
// {
275
//
276
// auto pOld = m_p;
277
//
278
// if (::is_set(p))
279
// {
280
//
281
// p->increment_reference_count();
282
//
283
// m_p = p;
284
//
285
// m_pparticle = p;
286
//
287
// }
288
// else
289
// {
290
//
291
// m_p = nullptr;
292
//
293
// m_pparticle = nullptr;
294
//
295
// }
296
//
297
// if (::is_set(pOld))
298
// {
299
//
300
// ::release(pOld);
301
//
302
// }
303
//
304
// }
305
//
306
// }
307
//
308
// return *this;
309
//
310
//}
311
//
312
//
313
//template < class T >
314
//inline pointer < T > & pointer < T > ::operator = (const pointer & t)
315
//{
316
// if (this != &t)
317
// {
318
//
319
// auto pold = m_pparticle;
320
//
321
// m_p = t.m_p;
322
//
323
// m_pparticle = t.m_pparticle;
324
//
325
// if (::is_set(m_p))
326
// {
327
//
328
// m_pparticle->increment_reference_count();
329
//
330
// }
331
//
332
// ::release(pold REF_DBG_COMMA_POINTER);
333
//
334
// }
335
// return *this;
336
//
337
//}
338
//
339
//
340
//template < class T >
341
//inline pointer < T > & pointer < T > ::operator = (pointer && t)
342
//{
343
//
344
// if(&t != this)
345
// {
346
//
347
// auto pOld = m_pparticle;
348
//
349
// m_p = t.m_p;
350
//
351
// m_pparticle = t.m_pparticle;
352
//
353
// t.m_p = nullptr;
354
//
355
// t.m_pparticle = nullptr;
356
//
357
// ::release(pOld REF_DBG_COMMA_POINTER);
358
//
359
// }
360
//
361
// return *this;
362
//
363
//}
364
//
365
//
366
//template < class T >
367
//inline T * pointer < T > ::detach()
368
//{
369
//
370
// auto p = m_p;
371
//
372
// m_p = nullptr;
373
//
374
// m_pparticle = nullptr;
375
//
376
// return p;
377
//
378
//}
379
//
380
//
383
//template < class T >
384
//inline ::i64 pointer <T>::release()
385
//{
386
//
387
// m_p = nullptr;
388
//
389
// return ::release(m_pparticle);
390
//
391
//}
392
//
393
//
394
//template < class T1, class T2 >
395
//inline bool operator ==(const T1 * t1, const ::pointer<T2>& t2)
396
//{
397
// auto p1 = dynamic_cast < T1 * > (t2.m_p);
398
// if(p1 != nullptr)
399
// {
400
// return p1 == t1;
401
// }
402
// auto p2 = dynamic_cast < T2 * > ((T1 *) t1);
403
// if(p2 != nullptr)
404
// {
405
// return p2 == t2.m_p;
406
// }
407
// return false;
408
//}
409
//
410
//
411
//template < class T1, class T2 >
412
//inline bool operator ==(const ::pointer<T1>& t1, const T2 * t2)
413
//{
414
// auto p1 = dynamic_cast < T1 * > ((T2 *) t2);
415
// if(p1 != nullptr)
416
// {
417
// return p1 == t1.m_p;
418
// }
419
// auto p2 = dynamic_cast < T2 * > (t1.m_p);
420
// if(p2 != nullptr)
421
// {
422
// return p2 == t2;
423
// }
424
// return false;
425
//}
426
//
427
//
428
//template < class T1, class T2 >
429
//inline bool operator ==(const ::pointer<T1>& t1, const ::pointer<T2> t2)
430
//{
431
// auto p1 = dynamic_cast < T1 * > (t2.m_p);
432
// if(p1 != nullptr)
433
// {
434
// return p1 == t1.m_p;
435
// }
436
// auto p2 = dynamic_cast < T2 * > (t1.m_p);
437
// if(p2 != nullptr)
438
// {
439
// return p2 == t2.m_p;
440
// }
441
// return false;
442
//}
443
//
444
//
445
//template < class T1, class T2 >
446
//inline bool operator ==(T1 * t1, const ::pointer<T2>& t2)
447
//{
448
//
449
// return operator == ((const T1 *) t1, t2);
450
//
451
//}
452
//
453
//
454
//template < class T1, class T2 >
455
//inline bool operator ==(const ::pointer<T1>& t1, T2 * t2)
456
//{
457
//
458
// return operator == (t1, (const T2 *) t2);
459
//
460
//}
461
//
462
//
463
//template < class T1, class T2 >
464
//inline bool operator !=(const T1 * t1, const ::pointer<T2>& t2)
465
//{
466
//
467
// return !operator == (t1, t2);
468
//
469
//}
470
//
471
//
472
//template < class T1, class T2 >
473
//inline bool operator !=(const ::pointer<T1>& t1, const T2 * t2)
474
//{
475
//
476
// return !operator == (t1, t2);
477
//
478
//}
479
//
480
//
481
//template < class T1, class T2 >
482
//inline bool operator !=(T1 * t1, const ::pointer<T2>& t2)
483
//{
484
//
485
// return !operator == ((const T1 *) t1, t2);
486
//
487
//}
488
//
489
//
490
//template < class T1, class T2 >
491
//inline bool operator !=(const ::pointer<T1>& t1, T2 * t2)
492
//{
493
// return !operator == (t1, (const T2 *) t2);
494
//}
495
//
496
//
497
//template < class T1, class T2 >
498
//inline bool operator !=(const ::pointer<T1>& t1, const ::pointer<T2> t2)
499
//{
500
//
501
// return !operator == (t1, t2);
502
//
503
//}
511
//
512
//
520
//
521
//
522
//template < typename TYPE >
523
//inline ::pointer<TYPE>clone(const ::pointer<TYPE> & p)
524
//{
525
//
526
// if (!p)
527
// {
528
//
529
// return p;
530
//
531
// }
532
//
533
// auto pelement = p->clone();
534
//
535
// if(__pointer_is_null(pelement))
536
// {
537
//
538
// throw ::exception(error_failed);
539
//
540
// }
541
//
542
// auto pNew = dynamic_cast < TYPE * > (pelement);
543
//
544
// if(__pointer_is_null(pNew))
545
// {
546
//
547
// throw ::exception(error_wrong_type);
548
//
549
// }
550
//
551
// return ::pointer_transfer(pNew);
552
//
553
//}
554
//
555
//
556
//template < typename TYPE >
557
//inline ::pointer<TYPE>& clone(::pointer<TYPE> & p)
558
//{
559
//
560
// return p = ::clone((const ::pointer<TYPE>&) p);
561
//
562
//}
563
//
564
//
565
//template < typename TYPE >
566
//inline ::pointer<TYPE>& defer_clone(::pointer<TYPE> & p)
567
//{
568
//
569
// if (!p || p->reference_count() <= 1)
570
// {
571
//
572
// return p;
573
//
574
// }
575
//
576
// return p = ::clone(p);
577
//
578
//}
579
//
580
//
581
//template < typename TYPE >
582
//ptr < TYPE > clone(TYPE * p)
583
//{
584
//
585
// if(__pointer_is_null(p))
586
// {
587
//
588
// throw ::exception(error_null_pointer);
589
//
590
// }
591
//
592
// auto pelement = p->clone();
593
//
594
// auto pNew = dynamic_cast < TYPE * > (pelement);
595
//
596
// if(__pointer_is_null(pNew))
597
// {
598
//
599
// throw ::exception(error_wrong_type);
600
//
601
// }
602
//
603
// return ::pointer_transfer(pNew);
604
//
605
//}
606
//
607
//
608
//
prototype
prototype
pointer2.h
Generated by
1.17.0