acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
_forward_declaration.h
1//
2// _forward_declaration.h
3// acme
4//
5// Created by Camilo Sasuke Thomas Borregaard Soerensen on 29/09/22 22:30
6// Copyright (c) 2022 Camilo Sasuke Thomas Borregaard Soerensen. All rights reserved.
7//
8// Created by camilo on 2021-08-31 16:00 BRT <3ThomasBS_!!
9#pragma once
10
11
12class subparticle;
13
14
15template<typename ENUM>
17{
18 using type = ENUM;
19};
20
21
22template<class TYPE, TYPE t>
24{
25
26 inline static constexpr TYPE payload = t;
27
28};
29
30
31template<bool b>
32using bool_constant = integral_constant<bool, b>;
33
34
35using true_type = bool_constant<true>;
36
37using false_type = bool_constant<false>;
38
39
40template<class T>
41struct is_const_struct : false_type
42{
43};
44
45
46template<class T>
47struct is_const_struct<const T> : true_type
48{
49};
50
51
52template<class T>
53inline constexpr bool is_const = is_const_struct<T>::payload;
54
55
56template<class T>
57struct is_reference_struct : false_type
58{
59};
60
61
62template<class T>
63struct is_reference_struct<T &> : true_type
64{
65};
66
67
68template<class T>
69struct is_reference_struct<T &&> : true_type
70{
71};
72
73
74template<class T>
75inline constexpr bool is_reference = is_reference_struct<T>::payload;
76
77
78template<typename TYPE>
80{
81 using CONST_OF_TYPE = const TYPE;
82};
83
84
85template<typename TYPE>
86struct const_of_struct<TYPE &>
87{
88 using CONST_OF_TYPE = const TYPE &;
89};
90
91
92template<typename TYPE>
93struct const_of_struct<TYPE *>
94{
95 using CONST_OF_TYPE = const TYPE *;
96};
97
98
99template<typename TYPE>
100struct const_of_struct<TYPE const &>
101{
102 using CONST_OF_TYPE = const TYPE &;
103};
104
105
106template<typename TYPE>
107struct const_of_struct<TYPE * const>
108{
109 using CONST_OF_TYPE = const TYPE *;
110};
111
112
113template<typename TYPE>
114struct const_of_struct<TYPE const &&>
115{
116 using CONST_OF_TYPE = const TYPE &&;
117};
118
119
120//template < typename FUNCTION >
121//struct const_of_struct < void(*FUNCTION) >
122//{
123//
124// using CONST_OF_TYPE = FUNCTION;
125//
126//};
127//
128//template < typename FUNCTION, typename RETURN_TYPE >
129//struct const_of_struct < RETURN_TYPE( *FUNCTION) >
130//{
131//
132// using CONST_OF_TYPE = FUNCTION;
133//
134//};
135//
136//
137//template < typename FUNCTION, typename RETURN_TYPE, typename... TYPES >
138//struct const_of_struct < RETURN_TYPE( *FUNCTION) (TYPES...) >
139//{
140//
141// using CONST_OF_TYPE = FUNCTION;
142//
143//};
144//
145//
146//template < typename FUNCTION, typename... TYPES >
147//struct const_of_struct < void( *FUNCTION)(TYPES...) >
148//{
149//
150// using CONST_OF_TYPE = FUNCTION;
151//
152//};
153
154
155//template <class... Args>
156//struct all_s :std::false_type {};
157//
158//template <>
159//struct all_s<size_t> :true_type {};
160//
161//template <class... Args>
162//struct all_s<size_t, Args...> :all_s<Args...> {};
163//template <class... Args>
164//concept all_s_con = all_s<Args...>::value;
165//
166//template<class C, class R, class Fun>
167//struct fun_all_s :std::false_type {};
168//template<class C, class R, class... Args>
169// requires all_s_con<Args...>
170//struct fun_all_s<C, R, R(C &, Args...)> :true_type {};
171//
172//template<class C, typename Policy>
173//concept FooConcept = fun_all_s<C, typename C::value_type, decltype(Policy::foo)>::value;
174
175
176template<typename TYPE>
177using const_of = typename const_of_struct<TYPE>::CONST_OF_TYPE;
178
179
180template<typename TYPE>
182{
183 using NON_CONST_TYPE = TYPE;
184};
185
186
187template<typename TYPE>
188struct erase_const_struct<TYPE &>
189{
190 using NON_CONST_TYPE = TYPE &;
191};
192
193
194template<typename TYPE>
195struct erase_const_struct<const TYPE>
196{
197 using NON_CONST_TYPE = TYPE;
198};
199
200
201template<typename TYPE>
202struct erase_const_struct<const TYPE &>
203{
204 using NON_CONST_TYPE = TYPE &;
205};
206
207
208template<typename TYPE>
209struct erase_const_struct<const TYPE *>
210{
211 using NON_CONST_TYPE = TYPE *;
212};
213
214
215template<typename TYPE>
216struct erase_const_struct<const TYPE &&>
217{
218 using NON_CONST_TYPE = TYPE &&;
219};
220
221
222template<typename TYPE>
223using non_const = typename erase_const_struct<TYPE>::NON_CONST_TYPE;
224
225
226template<typename TYPE>
228{
229 using NON_REFERENCE_TYPE = TYPE;
230};
231
232
233template<typename TYPE>
235{
236 using NON_REFERENCE_TYPE = TYPE;
237};
238
239
240template<typename TYPE>
241struct erase_reference_struct<const TYPE &>
242{
243 using NON_REFERENCE_TYPE = const TYPE;
244};
245
246
247template<typename TYPE>
249{
250 using NON_REFERENCE_TYPE = TYPE;
251};
252
253
254template<typename TYPE>
255struct erase_reference_struct<const TYPE &&>
256{
257 using NON_REFERENCE_TYPE = const TYPE;
258};
259
260
261template<typename TYPE>
262using non_reference = typename erase_reference_struct<TYPE>::NON_REFERENCE_TYPE;
263
264
265template<typename TYPE>
267{
268
269 // erase top-level const qualifier
270 using CONST_TYPE = const TYPE;
271
272
273};
274
275
276template<typename TYPE>
277struct insert_const<TYPE &>
278{
279 using CONST_TYPE = const TYPE &;
280};
281
282
283template<typename TYPE>
284struct insert_const<TYPE *>
285{
286 using CONST_TYPE = const TYPE *;
287};
288
289
290template<typename TYPE>
291struct insert_const<const TYPE>
292{
293 using CONST_TYPE = const TYPE;
294};
295
296
297template<typename TYPE>
298struct insert_const<const TYPE &>
299{
300 using CONST_TYPE = const TYPE &;
301};
302
303
304template<typename TYPE>
305struct insert_const<const TYPE *>
306{
307 using CONST_TYPE = const TYPE *;
308};
309
310
311template<class TYPE>
312using add_const = typename insert_const<TYPE>::CONST_TYPE;
313
314
315//constexpr ::u64 operator""_uintmax(::u64 u) { return u << 32LL; }
316
317template<typename DERIVED, typename BASE>
319 ::std::is_base_of<BASE, DERIVED>::value;
320
321
322template<bool B, class TRUE_TYPE = void, class ELSE_TYPE = void>
324{
325};
326
327
328template<class TRUE_TYPE, class ELSE_TYPE>
329struct if_else_base<true, TRUE_TYPE, ELSE_TYPE>
330{
331 using type = TRUE_TYPE;
332};
333
334
335template<class TRUE_TYPE, class ELSE_TYPE>
336struct if_else_base<false, TRUE_TYPE, ELSE_TYPE>
337{
338 using type = ELSE_TYPE;
339};
340
341
342template<bool B, class TRUE_TYPE = void, class ELSE_TYPE = void>
343using if_else = typename if_else_base<B, TRUE_TYPE, ELSE_TYPE>::type;
344
345
346
347template<typename T>
348struct is_raw_array_struct : ::false_type
349{
350};
351
352template<typename T, std::size_t N>
353struct is_raw_array_struct<T[N]> : ::true_type
354{
355};
356
357template<typename T, std::size_t N>
358struct is_raw_array_struct<T (&)[N]> : ::true_type
359{
360};
361
362template<typename T>
363struct is_raw_array_struct<T[]> : ::true_type
364{
365};
366
367template<typename T>
368struct is_raw_array_struct<T (&)[]> : ::true_type
369{
370};
371
372template<class T>
373inline constexpr bool is_raw_array = is_raw_array_struct<T>::payload;
374
375
376template<typename T>
378{
379 using type = T;
380};
381
382template<typename T>
384{
385 using type = T;
386};
387
388template<typename T>
390{
391 using type = T;
392};
393
394template<typename T>
395struct erase_const_effemeral_struct<const volatile T>
396{
397 using type = T;
398};
399
400
401template<typename T>
402using erase_const_effemeral = typename erase_const_effemeral_struct<T>::type;
403
404
405
406
407template<typename>
408struct is_raw_pointer_bool : public false_type
409{
410};
411
412template<typename T>
413struct is_raw_pointer_bool<T *> : public true_type
414{
415};
416
417
418template<typename T>
419struct is_raw_pointer_struct : public is_raw_pointer_bool<erase_const_effemeral<T>>
420{
421};
422
423
424template<typename T>
425inline constexpr bool is_raw_pointer = is_raw_pointer_struct<T>::payload;
426
427
428template<typename POINTER>
429concept prototype_raw_pointer = ::is_raw_pointer<POINTER>;
430
431namespace inner_detail
432{
433 template<class T>
435 {
436 using type = T;
437 }; // or use std::type_identity (since C++20)
438
439 template<class T>
440 auto try_add_pointer(::i32) -> type_identity<non_reference<T> *>;
441
442
443 template<class T>
444 auto try_add_pointer(...) -> type_identity<T>;
445} // namespace detail
446
447template<class T>
448struct add_pointer_struct : decltype(inner_detail::try_add_pointer<T>(0))
449{
450};
451
452
453template<typename T>
454using add_pointer = typename add_pointer_struct<T>::type;
455
456
457template<class T>
459{
460 typedef T type;
461};
462
463
464template<class T>
466{
467 typedef T type;
468};
469
470
471template<class T>
472struct erase_pointer_struct<T * const>
473{
474 typedef T type;
475};
476
477
478template<class T>
479struct erase_pointer_struct<T * volatile>
480{
481 typedef T type;
482};
483
484
485template<class T>
486struct erase_pointer_struct<T * const volatile>
487{
488 typedef T type;
489};
490
491
492template<typename T>
493using non_pointer = typename erase_pointer_struct<T>::type;
494
495
496template<class T>
498{
499 using type = T;
500};
501
502
503template<class T>
505{
506 using type = T;
507};
508
509
510template<class T, std::size_t N>
512{
513 using type = T;
514};
515
516
517template<typename T>
518using non_extent = typename erase_extent_struct<T>::type;
519
520
521#if REFERENCING_DEBUGGING
522
523
524class reference_referer;
525
526
527namespace allocator
528{
529
530
531 //CLASS_DECL_ACME ::reference_referer* defer_add_referer(const ::reference_referer& referer);
532
533
534 CLASS_DECL_ACME ::reference_referer* push_referer(const ::reference_referer& referer);
535
536 CLASS_DECL_ACME ::reference_referer * defer_push_referer(::subparticle * psubparticleExisting, const ::reference_referer& referer);
537
538
539 CLASS_DECL_ACME void _push_referer(::reference_referer* preferer);
540
541
542 //CLASS_DECL_ACME ::reference_referer* defer_pop_referer(::subparticle* p, const ::reference_referer& referer);
543
544
545 //CLASS_DECL_ACME ::reference_referer* get_referer();
546
547
548 CLASS_DECL_ACME ::reference_referer* pop_referer();
549
550
551 CLASS_DECL_ACME ::reference_referer* get_top_referer();
552
553
554 CLASS_DECL_ACME void defer_erase_referer();
555
556
557 CLASS_DECL_ACME void defer_erase_referer(::subparticle * psubparticle);
558
559
560 CLASS_DECL_ACME void erase_referer(::reference_referer* preferer);
561
562
563 CLASS_DECL_ACME void add_releaser(::reference_referer* preferer);
564
565
566 CLASS_DECL_ACME ::reference_referer* get_releaser();
567
568
569 CLASS_DECL_ACME ::reference_referer* pop_releaser();
570
571
572 CLASS_DECL_ACME void defer_erase_releaser(bool bParticleReferencingDebuggingEnabled);
573
574
575 CLASS_DECL_ACME void erase_releaser(::reference_referer* preferer);
576
577
578} // namespace allocator
579
580
581#endif
582
583
584template<typename T>
586 bool,
587 !is_const<const T> && !is_reference<T>
588 >
589{
590};
591
592
593template<typename T>
594inline constexpr bool is_function = is_function_struct<T>::payload;
595
596
598//template<class>
599//struct is_function_struct : false_type {};
600//
602//template<class Ret, class... Args>
603//struct is_function_struct<Ret(Args...)> : true_type {};
604//
606//template<class Ret, class... Args>
607//struct is_function_struct<Ret(Args......)> : true_type {};
608//
610//template<class Ret, class... Args>
611//struct is_function_struct<Ret(Args...) const> : true_type {};
612//template<class Ret, class... Args>
613//struct is_function_struct<Ret(Args...) volatile> : true_type {};
614//template<class Ret, class... Args>
615//struct is_function_struct<Ret(Args...) const volatile> : true_type {};
616//template<class Ret, class... Args>
617//struct is_function_struct<Ret(Args......) const> : true_type {};
618//template<class Ret, class... Args>
619//struct is_function_struct<Ret(Args......) volatile> : true_type {};
620//template<class Ret, class... Args>
621//struct is_function_struct<Ret(Args......) const volatile> : true_type {};
622//
624//template<class Ret, class... Args>
625//struct is_function_struct<Ret(Args...) &> : true_type {};
626//template<class Ret, class... Args>
627//struct is_function_struct<Ret(Args...) const &> : true_type {};
628//template<class Ret, class... Args>
629//struct is_function_struct<Ret(Args...) volatile &> : true_type {};
630//template<class Ret, class... Args>
631//struct is_function_struct<Ret(Args...) const volatile &> : true_type {};
632//template<class Ret, class... Args>
633//struct is_function_struct<Ret(Args......) &> : true_type {};
634//template<class Ret, class... Args>
635//struct is_function_struct<Ret(Args......) const &> : true_type {};
636//template<class Ret, class... Args>
637//struct is_function_struct<Ret(Args......) volatile &> : true_type {};
638//template<class Ret, class... Args>
639//struct is_function_struct<Ret(Args......) const volatile &> : true_type {};
640//template<class Ret, class... Args>
641//struct is_function_struct<Ret(Args...) &&> : true_type {};
642//template<class Ret, class... Args>
643//struct is_function_struct<Ret(Args...) const &&> : true_type {};
644//template<class Ret, class... Args>
645//struct is_function_struct<Ret(Args...) volatile &&> : true_type {};
646//template<class Ret, class... Args>
647//struct is_function_struct<Ret(Args...) const volatile &&> : true_type {};
648//template<class Ret, class... Args>
649//struct is_function_struct<Ret(Args......) &&> : true_type {};
650//template<class Ret, class... Args>
651//struct is_function_struct<Ret(Args......) const &&> : true_type {};
652//template<class Ret, class... Args>
653//struct is_function_struct<Ret(Args......) volatile &&> : true_type {};
654//template<class Ret, class... Args>
655//struct is_function_struct<Ret(Args......) const volatile &&> : true_type {};
656//
658//template<class Ret, class... Args>
659//struct is_function_struct<Ret(Args...) noexcept> : true_type {};
660//template<class Ret, class... Args>
661//struct is_function_struct<Ret(Args......) noexcept> : true_type {};
662//template<class Ret, class... Args>
663//struct is_function_struct<Ret(Args...) const noexcept> : true_type {};
664//template<class Ret, class... Args>
665//struct is_function_struct<Ret(Args...) volatile noexcept> : true_type {};
666//template<class Ret, class... Args>
667//struct is_function_struct<Ret(Args...) const volatile noexcept> : true_type {};
668//template<class Ret, class... Args>
669//struct is_function_struct<Ret(Args......) const noexcept> : true_type {};
670//template<class Ret, class... Args>
671//struct is_function_struct<Ret(Args......) volatile noexcept> : true_type {};
672//template<class Ret, class... Args>
673//struct is_function_struct<Ret(Args......) const volatile noexcept> : true_type {};
674//template<class Ret, class... Args>
675//struct is_function_struct<Ret(Args...) & noexcept> : true_type {};
676//template<class Ret, class... Args>
677//struct is_function_struct<Ret(Args...) const & noexcept> : true_type {};
678//template<class Ret, class... Args>
679//struct is_function_struct<Ret(Args...) volatile & noexcept> : true_type {};
680//template<class Ret, class... Args>
681//struct is_function_struct<Ret(Args...) const volatile & noexcept> : true_type {};
682//template<class Ret, class... Args>
683//struct is_function_struct<Ret(Args......) & noexcept> : true_type {};
684//template<class Ret, class... Args>
685//struct is_function_struct<Ret(Args......) const & noexcept> : true_type {};
686//template<class Ret, class... Args>
687//struct is_function_struct<Ret(Args......) volatile & noexcept> : true_type {};
688//template<class Ret, class... Args>
689//struct is_function_struct<Ret(Args......) const volatile & noexcept> : true_type {};
690//template<class Ret, class... Args>
691//struct is_function_struct<Ret(Args...) && noexcept> : true_type {};
692//template<class Ret, class... Args>
693//struct is_function_struct<Ret(Args...) const && noexcept> : true_type {};
694//template<class Ret, class... Args>
695//struct is_function_struct<Ret(Args...) volatile && noexcept> : true_type {};
696//template<class Ret, class... Args>
697//struct is_function_struct<Ret(Args...) const volatile && noexcept> : true_type {};
698//template<class Ret, class... Args>
699//struct is_function_struct<Ret(Args......) && noexcept> : true_type {};
700//template<class Ret, class... Args>
701//struct is_function_struct<Ret(Args......) const && noexcept> : true_type {};
702//template<class Ret, class... Args>
703//struct is_function_struct<Ret(Args......) volatile && noexcept> : true_type {};
704//template<class Ret, class... Args>
705//struct is_function_struct<Ret(Args......) const volatile && noexcept> : true_type {};
706
707
709//template<typename T>
710//using is_function = typename is_function_struct<T > :: type;
711
712// specialization for regular functions
713//template<class Ret, class... Args>
714//using is_function = typename is_function_struct<Ret(Args...)> :: type;
715
717//template<class Ret, class... Args>
718//using is_function = typename is_function_struct<Ret(Args......)> :: type;
719//
721//template<class Ret, class... Args>
722//using is_function = typename is_function_struct<Ret(Args...) const> :: type;
723//template<class Ret, class... Args>
724//using is_function = typename is_function_struct<Ret(Args...) volatile> :: type;
725//template<class Ret, class... Args>
726//using is_function = typename is_function_struct<Ret(Args...) const volatile> :: type;
727//template<class Ret, class... Args>
728//using is_function = typename is_function_struct<Ret(Args......) const> :: type;
729//template<class Ret, class... Args>
730//using is_function = typename is_function_struct<Ret(Args......) volatile> :: type;
731//template<class Ret, class... Args>
732//using is_function = typename is_function_struct<Ret(Args......) const volatile> :: type;
733//
735//template<class Ret, class... Args>
736//using is_function = typename is_function_struct<Ret(Args...) &> :: type;
737//template<class Ret, class... Args>
738//using is_function = typename is_function_struct<Ret(Args...) const &> :: type;
739//template<class Ret, class... Args>
740//using is_function = typename is_function_struct<Ret(Args...) volatile &> :: type;
741//template<class Ret, class... Args>
742//using is_function = typename is_function_struct<Ret(Args...) const volatile &> :: type;
743//template<class Ret, class... Args>
744//using is_function = typename is_function_struct<Ret(Args......) &> :: type;
745//template<class Ret, class... Args>
746//using is_function = typename is_function_struct<Ret(Args......) const &> :: type;
747//template<class Ret, class... Args>
748//using is_function = typename is_function_struct<Ret(Args......) volatile &> :: type;
749//template<class Ret, class... Args>
750//using is_function = typename is_function_struct<Ret(Args......) const volatile &> :: type;
751//template<class Ret, class... Args>
752//using is_function = typename is_function_struct<Ret(Args...) &&> :: type;
753//template<class Ret, class... Args>
754//using is_function = typename is_function_struct<Ret(Args...) const &&> :: type;
755//template<class Ret, class... Args>
756//using is_function = typename is_function_struct<Ret(Args...) volatile &&> :: type;
757//template<class Ret, class... Args>
758//using is_function = typename is_function_struct<Ret(Args...) const volatile &&> :: type;
759//template<class Ret, class... Args>
760//using is_function = typename is_function_struct<Ret(Args......) &&> :: type;
761//template<class Ret, class... Args>
762//using is_function = typename is_function_struct<Ret(Args......) const &&> :: type;
763//template<class Ret, class... Args>
764//using is_function = typename is_function_struct<Ret(Args......) volatile &&> :: type;
765//template<class Ret, class... Args>
766//using is_function = typename is_function_struct<Ret(Args......) const volatile &&> :: type;
767//
769//template<class Ret, class... Args>
770//using is_function = typename is_function_struct<Ret(Args...) noexcept> :: type;
771//template<class Ret, class... Args>
772//using is_function = typename is_function_struct<Ret(Args......) noexcept> :: type;
773//template<class Ret, class... Args>
774//using is_function = typename is_function_struct<Ret(Args...) const noexcept> :: type;
775//template<class Ret, class... Args>
776//using is_function = typename is_function_struct<Ret(Args...) volatile noexcept> :: type;
777//template<class Ret, class... Args>
778//using is_function = typename is_function_struct<Ret(Args...) const volatile noexcept> :: type;
779//template<class Ret, class... Args>
780//using is_function = typename is_function_struct<Ret(Args......) const noexcept> :: type;
781//template<class Ret, class... Args>
782//using is_function = typename is_function_struct<Ret(Args......) volatile noexcept> :: type;
783//template<class Ret, class... Args>
784//using is_function = typename is_function_struct<Ret(Args......) const volatile noexcept> :: type;
785//template<class Ret, class... Args>
786//using is_function = typename is_function_struct<Ret(Args...) & noexcept> :: type;
787//template<class Ret, class... Args>
788//using is_function = typename is_function_struct<Ret(Args...) const & noexcept> :: type;
789//template<class Ret, class... Args>
790//using is_function = typename is_function_struct<Ret(Args...) volatile & noexcept> :: type;
791//template<class Ret, class... Args>
792//using is_function = typename is_function_struct<Ret(Args...) const volatile & noexcept> :: type;
793//template<class Ret, class... Args>
794//using is_function = typename is_function_struct<Ret(Args......) & noexcept> :: type;
795//template<class Ret, class... Args>
796//using is_function = typename is_function_struct<Ret(Args......) const & noexcept> :: type;
797//template<class Ret, class... Args>
798//using is_function = typename is_function_struct<Ret(Args......) volatile & noexcept> :: type;
799//template<class Ret, class... Args>
800//using is_function = typename is_function_struct<Ret(Args......) const volatile & noexcept> :: type;
801//template<class Ret, class... Args>
802//using is_function = typename is_function_struct<Ret(Args...) && noexcept> :: type;
803//template<class Ret, class... Args>
804//using is_function = typename is_function_struct<Ret(Args...) const && noexcept> :: type;
805//template<class Ret, class... Args>
806//using is_function = typename is_function_struct<Ret(Args...) volatile && noexcept> :: type;
807//template<class Ret, class... Args>
808//using is_function = typename is_function_struct<Ret(Args...) const volatile && noexcept> :: type;
809//template<class Ret, class... Args>
810//using is_function = typename is_function_struct<Ret(Args......) && noexcept> :: type;
811//template<class Ret, class... Args>
812//using is_function = typename is_function_struct<Ret(Args......) const && noexcept> :: type;
813//template<class Ret, class... Args>
814//using is_function = typename is_function_struct<Ret(Args......) volatile && noexcept> :: type;
815//template<class Ret, class... Args>
816//using is_function = typename is_function_struct<Ret(Args......) const volatile && noexcept> :: type;
817
818
819template<class T>
821{
822private:
823
824
825 using U = ::non_reference<T>;
826
827
828public:
829
830
831 using type =
832 if_else<
833 is_raw_array<U>,
834 add_pointer<non_extent<U>>,
835 if_else<
836 is_function<U>, add_pointer<U>, non_const<U>>
837 >;
838};
839
840
841template<typename T>
842using decay = typename decay_struct<T>::type;
843
844
845namespace opengl
846{
847
848
849 class opengl;
850
851
852} // namespace opengl
853
854
855namespace operating_system
856{
857
858
859 class summary;
860
861
862} // namespace operating_system
863
864
865namespace message
866{
867
868 class command;
869
870} // namespace message
871
872
873class matter;
874
875
876namespace platform
877{
878
879
880 class system; // acme - cam
881
882
883 class application;
884 // apex(::apex::application) - tbs offloading his deep stack in ::platform::application(::acme):cstbs
885
886 class session;
887
888
889 class system_factory;
890
891 class context;
892
894
895 class static_start;
896
897 class node;
898 class library;
899
900
901 class http;
902
903
904} // namespace platform
905
906
907class memory_counter;
908
909
910namespace acme_posix
911{
912
913
914 class node;
915
916
917} // namespace acme_posix
918
919
920namespace
921IDENTIFIER_SUFFIX_OPERATING_SYSTEM(aura_)
922{
923
924
925 class node;
926 class buffer;
927
928
929} // namespace IDENTIFIER_SUFFIX_OPERATING_SYSTEM(aura_)
930
931
932namespace acme_posix
933{
934 class node;
935}
936
937
938namespace apex_posix
939{
940 class node;
941}
942
943
944namespace aura_posix
945{
946 class node;
947}
948
949
950namespace
951IDENTIFIER_SUFFIX_OPERATING_SYSTEM(acme_)
952{
953 class node;
954}
955
956
957namespace
958IDENTIFIER_SUFFIX_OPERATING_SYSTEM(apex_)
959{
960 class node;
961}
962
963
964namespace
965IDENTIFIER_SUFFIX_OPERATING_SYSTEM(aura_)
966{
967 class node;
968}
969
970
971// namespace acme
972// {
973//
974//
975// class system;
976//
977//
978// class node;
979//
980//
981// } // namespace acme
982
983
984namespace apex
985{
986
987
988 class system;
989
990
991 class node;
992
993
994} // namespace apex
995
996
997namespace aura
998{
999
1000
1001 class system;
1002
1003
1004 class node;
1005
1006
1007} // namespace aura
1008
1009
1010class object;
1011class thread;
1012
1013
1014//class os_context;
1015
1016
1017namespace node_gtk3
1018{
1019
1020
1021 class node;
1022
1023
1024} // namespace node_gtk3
1025
1026
1027namespace node_gtk4
1028{
1029
1030
1031 class node;
1032
1033
1034} // namespace node_gtk4
1035
1036
1037namespace node_gtk_based
1038{
1039
1040
1041 class node;
1042
1043
1044} // namespace node_gtk_based
1045
1046
1047namespace node_kde5
1048{
1049
1050
1051 class node;
1052
1053
1054} // namespace node_kde5
1055
1056
1057namespace node_kde6
1058{
1059
1060
1061 class node;
1062
1063
1064} // namespace node_kde6
1065
1066
1067namespace node_xfce
1068{
1069
1070
1071 class node;
1072
1073
1074} // namespace node_xfce
1075
1076
1077namespace windowing
1078{
1079
1080 class window;
1081
1082} // namespace windowing
1083
1084
1085namespace windows
1086{
1087
1088
1089 class generic_handle;
1090
1091
1092} // namespace windows
1093
1094
1095using hinstance = void *;
1096#ifdef UNICODE
1097using tchar = wchar_t;
1098#else
1099using tchar = ::i8;
1100#endif
1101
1102
1103
1104namespace desktop_environment_kde
1105{
1106
1107
1108 class node;
1109
1110
1111} // namespace desktop_environment_kde
1112
1113
1114namespace desktop_environment_xfce
1115{
1116
1117
1118 class node;
1119
1120
1121} // namespace desktop_environment_xfce
1122
1123
1124// namespace acme
1125// {
1126//
1127// class system;
1128// class context;
1129// class library;
1130// class node;
1131// class application;
1132// class exclusive;
1133//
1134// } // namespace acme
1135
1136
1137namespace apex
1138{
1139
1140
1141 class application;
1142
1143
1144} // namespace apex
1145
1146
1147class thread;
1148class task;
1149class property_object;
1150class task;
1151class task_pool;
1152class action_context;
1153class object;
1154//class dump_context;
1155class __id;
1156class string_exchange;
1157class wparam;
1158class lparam;
1159class time;
1160//class timer_callback;
1161
1162namespace platform
1163{
1164 class message;
1165} // namespace message
1166namespace message
1167{
1168 class message;
1169} // namespace message
1170namespace user
1171{
1172 class message;
1173} // namespace message
1174
1175class value;
1176struct block;
1177class property_set;
1178class subparticle;
1179class particle;
1180//class element;
1181class matter;
1183//class counter;
1184//class type;
1185
1186class file_system;
1187class path_system;
1188class directory_system;
1189
1190
1191namespace platform
1192{
1193
1194
1195 class platform;
1196
1197
1198 //inline ::platform::platform * get();
1199
1200
1201} // namespace platform
1202
1203
1204class directory_context;
1205class directory_system;
1206class file_context;
1207class file_system;
1208
1209
1210enum enum_zero_init
1211{
1212
1213 e_zero_init
1214
1215};
1216
1217
1218namespace networking
1219{
1220
1221
1222 class application;
1223
1224
1225} // namespace networking
1226
1227
1228namespace operating_system
1229{
1230
1231 class department;
1232
1233 class process;
1234
1235 struct exit_status;
1236
1237} // namespace operating_system
1238
1239
1240namespace regular_expression
1241{
1242
1243 class context;
1244 class regular_expression;
1245
1246} // namespace regular_expression
1247
1248
1249namespace file
1250{
1251
1252
1253 class path;
1254 class path_object;
1255 struct file_status;
1256
1257
1258} // namespace file
1259
1260
1261namespace factory
1262{
1263
1264
1265 class factory;
1266
1267 //CLASS_DECL_ACME ::factory::factory * get_factory();
1268
1269
1270} // namespace factory
1271
1272
1273namespace crypto
1274{
1275
1276
1277 class crypto;
1278
1279
1280} // namespace crypto
1281
1282
1283namespace data
1284{
1285
1286
1287 class node;
1288// class item;
1289
1290
1291} // namespace data
1292
1293
1294class memory_base;
1295
1296
1298{
1299};
1300
1301
1303{
1304};
1305
1306
1310
1311
1313{
1314};
1315
1316
1318{
1319};
1320
1321
1323{
1324};
1325
1326
1330
1331
1332//class handler;
1333class manager;
1334class context;
1335class topic;
1336class extended_topic;
1337
1338
1339namespace file
1340{
1341
1342 class file;
1343 class item;
1344 class item_array;
1345
1346
1347} // namespace file
1348
1349
1350namespace apex
1351{
1352
1353
1354 class savings;
1355
1356
1357} // namespace apex
1358
1359class stdio_file;
1360class string_stream;
1361class string_buffer;
1362
1363
1364namespace http
1365{
1366
1367 class message;
1368 class session;
1369
1370 class cookie;
1371 class cookies;
1372
1373
1374} // namespace http
1375
1376
1377class error_code;
1378
1379
1380namespace user
1381{
1382
1383
1384 class tool_item;
1385 class mouse;
1386 class drag;
1387 class drag_client;
1388
1389 class interaction_base;
1390 class element;
1391 class prototype_impl;
1392
1393 class item;
1394
1395
1396} // namespace user
1397
1398
1399class conversation;
1400
1401
1402namespace image
1403{
1404
1405
1406 class image;
1407
1408
1409 class image_list;
1410
1411
1412 class image_context;
1413
1414
1415 class imaging;
1416
1417
1418 class icon;
1419
1420
1421 class cursor;
1422
1423
1424} // namespace image
1425
1426
1427//class e_check;
1428//class boolean;
1429
1430
1431namespace write_text
1432{
1433
1434
1435 class font;
1436
1437
1438} // namespace write_text
1439
1440
1441namespace interprocess
1442{
1443
1444
1445 class target;
1446
1447
1448} // namespace interprocess
1449
1450
1451struct pixmap;
1452
1453
1454#define CONSIDER_AS(as, use) using use = as
1455
1456
1457//typedef natural_ansistring natural_string;
1458//typedef natural_widestring natural_wstring;
1459
1460class property;
1461class payload;
1462class atom;
1463
1464CLASS_DECL_ACME subparticle* as_subparticle(const payload& payload);
1465
1466
1467struct MESSAGE;
1468
1469class item;
1470
1471
1472class memory;
1473
1474
1475class istring;
1476
1477
1478class property_set;
1479
1480
1481class payload_array_base;
1482
1483//using payload_array = ::make_particle < payload_array_base >;
1484
1485
1486class property;
1487
1488
1489class timer_future;
1490
1491
1492namespace acme
1493{
1494
1495 class Timer;
1496
1497 class exclusive;
1498
1499
1500};
1501
1502
1503class timer;
1504class timer_handler;
1505
1506
1507namespace message
1508{
1509
1510
1511 class mouse;
1512
1513
1514} // namespace message
1515
1516
1517class form_property_set;
1518
1519
1520namespace acme
1521{
1522
1523
1524 //class application;
1525 //class system;
1526 //class application_message;
1527
1528 class command;
1529
1530
1531} // namespace acme
1532
1533
1534namespace gpu
1535{
1536
1537 class approach;
1538
1539} // namespace gpu
1540
1541
1542namespace data
1543{
1544
1545
1546 class listener;
1547
1548
1549 class data;
1550
1551
1552 class simple_data;
1553
1554
1555 class data_container_base;
1556
1557
1558} // namespace data
1559
1560
1561namespace sockets // only usable from base.dll and dependants
1562{
1563
1564 class sockets; // only usable from base.dll and dependants
1565 class http_client_socket;
1566 class http_tunnel;
1567
1568} // namespace sockets // only usable from base.dll and dependants
1569
1570
1571namespace simpledb
1572{
1573
1574 class server;
1575
1576}
1577
1578
1579namespace url
1580{
1581
1582 class url; // only usable from base.dll and dependants
1583
1584
1585} // namespace url
1586
1587
1588class compress_department; // only usable from axis.dll and dependants
1589
1590
1591class channel;
1592
1593
1594//class dump_context;
1595
1596
1597//class atom_space;
1598
1599
1600class ptra;
1601
1602
1603class factory_item_base;
1604
1605
1607
1608
1609class critical_section;
1610
1611
1612class channel;
1613
1614
1615class critical_section;
1616
1617
1618class mutex;
1619
1620
1621class atom;
1622
1623
1624namespace colorertake5
1625{
1626
1627 class ParserFactory;
1628
1629
1630} // namespace colorertake5
1631
1632
1633//class pixmap;
1634
1635
1636class memory;
1637
1638
1639namespace datetime
1640{
1641
1642
1643 class datetime;
1644
1645
1646 class time;
1647
1648
1649 class time_span;
1650
1651
1652} // namespace datetime
1653
1654
1655namespace file
1656{
1657
1658 class listing_base;
1659
1660
1661 class path;
1662
1663
1664 class file;
1665
1666
1667 enum enum_type : ::i32
1668 {
1669
1670 e_type_unknown = 0,
1671 e_type_exists = 1 << 0,
1672 e_type_folder2 = 1 << 1,
1673 e_type_file2 = 1 << 2,
1674 e_type_element2 = 1 << 3,
1675 e_type_executable = 1 << 4,
1676 e_type_non_executable = 1 << 5,
1677 e_type_existent_folder = e_type_exists | e_type_folder2,
1678 e_type_existent_file = e_type_exists | e_type_file2,
1679 e_type_existent_element = e_type_exists | e_type_element2,
1680 e_type_file_or_folder2 = e_type_folder2 | e_type_file2,
1681 e_type_existent_file_or_folder = e_type_exists | e_type_folder2 | e_type_file2,
1682 e_type_doesnt_exist = I32_MINIMUM,
1683
1684 };
1685
1686
1687} // namespace file
1688
1689
1690constexpr bool is_existent_folder(::file::enum_type etype)
1691{
1692
1693 return (etype & ::file::e_type_existent_folder) == ::file::e_type_existent_folder;
1694
1695}
1696
1697
1698constexpr bool is_existent_file(::file::enum_type etype)
1699{
1700
1701 return (etype & ::file::e_type_existent_file) == ::file::e_type_existent_file;
1702
1703}
1704
1705
1706namespace install
1707{
1708
1709
1710 class installer;
1711
1712
1713} // namespace install
1714
1715//#include "acme/prototype/prototype/transfer.h"
1716
1717class task;
1718
1719
1720class machine_event_data;
1721
1722
1723namespace hotplugin
1724{
1725
1726 class host;
1727
1728
1729 class plugin;
1730
1731}
1732
1733
1734namespace html
1735{
1736
1737
1738 class html;
1739
1740
1741 class element;
1742
1743
1744} // namespace html
1745
1746
1747namespace audio
1748{
1749
1750
1751 class plugin;
1752
1753
1754} // namespace audio
1755
1756class file_time;
1757
1758class time;
1759
1760
1761namespace earth
1762{
1763
1764
1765 class date_span;
1766
1767 class time_span;
1768
1769 class time;
1770
1771
1772} // namespace earth
1773
1774
1775class folder;
1776
1777class memory_file;
1778
1779
1780extern "C"
1781typedef ::platform::library* NEW_LIBRARY();
1782
1783
1784typedef NEW_LIBRARY* PFN_NEW_LIBRARY;
1785
1786
1787namespace draw2d
1788{
1789
1790
1791 class graphics;
1792
1793
1794} // namespace draw2d
1795
1796
1797//namespace handle
1798//{
1799//
1800//
1801// class ini;
1802//
1803//
1804//} // namespace handle
1805
1806
1807struct system_time_t;
1808
1809//class scalar_base;
1810
1811
1812CLASS_DECL_ACME ::i32 __node_is_debugger_attached();
1813
1814
1818
1819
1820namespace user
1821{
1822
1823
1824 CLASS_DECL_ACME const_char_pointer get_message_text(::user::enum_message eusermessage);
1825
1826
1827} // namespace operating_system
1828
1829
1830// namespace acme
1831// {
1832//
1833// class static_start;
1834//
1835// class session;
1836//
1837// class system;
1838//
1839// class application;
1840//
1841//
1842// // extern CLASS_DECL_ACME bool g_bAcme;
1843//
1844//
1845// } // namespace acme
1846
1847
1848class directory_system;
1849
1850class file_system;
1851
1852class path_system;
1853
1854
1855namespace
1856IDENTIFIER_SUFFIX_OPERATING_SYSTEM(acme_)
1857{
1858
1859
1860 class directory_system;
1861
1862 class file_system;
1863
1864 class path_system;
1865
1866
1867} // namespace IDENTIFIER_SUFFIX_OPERATING_SYSTEM(acme_)
1868
1869
1870namespace handler
1871{
1872 class signal;
1873}
1874
1875
1876class backing;
1877class manager;
1878class topic;
1879class context;
1880//class handler;
1881//template < typename RESULT > class process;
1882class extended_topic;
1883
1884
1885namespace dynamic_source
1886{
1887
1888
1889 class script_interface;
1890
1891
1892} // namespace dynamic_source
1893
1894
1895namespace apex
1896{
1897
1898
1899 class theme;
1900
1901
1902 class context;
1903
1904
1905 class idpool;
1906
1907
1908 class system;
1909
1910
1911 class session;
1912
1913
1914 class node;
1915
1916
1917 class application;
1918
1919
1920} // namespace apex
1921
1922
1923namespace aqua
1924{
1925
1926
1927 class system;
1928
1929
1930 class session;
1931
1932
1933 class application;
1934
1935
1936} // namespace aqua
1937
1938
1939namespace user
1940{
1941
1942
1943 class user;
1944
1945
1946} // namespace user
1947
1948
1949namespace aura
1950{
1951
1952
1953 class theme;
1954
1955
1956 class context;
1957
1958
1959 class idpool;
1960
1961
1962 class application;
1963
1964
1965 class session;
1966
1967
1968 class node;
1969
1970
1971 class system;
1972
1973
1974} // namespace aura
1975
1976
1977namespace axis
1978{
1979
1980
1981 class idpool;
1982
1983
1984 class application;
1985
1986
1987 class session;
1988
1989
1990 class system;
1991
1992
1993 class user;
1994
1995
1996} // namespace axis
1997
1998
1999namespace berg
2000{
2001
2002
2003 class idpool;
2004
2005
2006 class application;
2007
2008
2009 class session;
2010
2011
2012 class system;
2013
2014
2015 class user;
2016
2017
2018} // namespace berg
2019
2020
2021namespace bred
2022{
2023
2024
2025 class system;
2026
2027
2028 class session;
2029
2030
2031 class application;
2032
2033
2034 class user;
2035
2036
2037} // namespace bred
2038
2039
2040namespace core
2041{
2042
2043
2044 class application;
2045
2046
2047 class session;
2048
2049
2050 class system;
2051
2052
2053 class user;
2054
2055
2056} // namespace core
2057
2058
2059class machine_event_central;
2060
2061struct block;
2062
2063
2064class payload;
2065struct block;
2066
2067
2068class trait;
2069
2070
2071class request;
2072
2073
2074class composite_base;
2075
2076
2077namespace write_text
2078{
2079
2080
2081 class font_enumeration_item;
2082
2083
2084} // namespace write_text
2085
2086
2087namespace draw2d
2088{
2089
2090
2091 class graphics;
2092 class path;
2093
2094
2095} // namespace draw2d
2096
2097
2098class wcsdup_array;
2099
2100
2101namespace geometry
2102{
2103
2104 class geometry;
2105
2106} // namespace geometry
2107
2108class compress;
2109class uncompress;
2110
2111//class system_impl;
2112
2113
2114//namespace str
2115//{
2116//
2117class base64;
2118//
2119//} // namespace str
2120
2121
2122namespace acme
2123{
2124
2125 class library;
2126
2127
2128 // using library_map = string_map_base < ::pointer<::acme::library >>;
2129
2130} // namespace acme
2131
2132class task_group;
2133class task_tool;
2134
2135
2136class node_data_exchange;
2137
2138
2139namespace xml
2140{
2141
2142
2143 class xml;
2144
2145
2146} // namespace xml
2147
2148
2149class ftpfs;
2150
2151
2152namespace fs
2153{
2154
2155 class remote_native;
2156
2157
2158 class fs;
2159
2160
2161 class data;
2162
2163}
2164
2165
2166class ifs;
2167
2168
2169namespace file
2170{
2171
2172 class watcher;
2173
2174} // namespace file
2175
2176
2177class mq_base;
2178
2179
2180namespace acme
2181{
2182
2183
2184 class timer_array;
2185
2186namespace windowing
2187{
2188
2189class window;
2190
2191}
2192
2193
2194} // namespace acme
2195
2196
2197namespace file
2198{
2199
2200
2201 class path;
2202 class path_object;
2203 class path_array;
2204
2205
2206} // namespace file
2207
2208class task;
2209
2210
2211// #ifdef WINDOWS_DESKTOP
2212//
2213// struct hwnd
2214// {
2215// }; // as pointer is a HWND
2216//
2217// using oswindow_t = hwnd;
2218//
2219// #else
2220//
2221// using oswindow_t = ::acme::windowing::window;
2222//
2223// #endif
2224//
2225//
2226// using oswindow = oswindow_t *;
2227
2228
2229namespace core
2230{
2231
2232
2233 class user;
2234
2235
2236} // namespace core
2237
2238
2239namespace http
2240{
2241
2242
2243 class context;
2244
2245 class proxy;
2246 class pac;
2247
2248
2249} // namespace http
2250
2251
2252class object_meta;
2253
2254
2256
2257
2258namespace factory
2259{
2260
2261
2263
2264
2265} // namespace factory
2266
2267
2268namespace user
2269{
2270
2271
2272 class interaction;
2273
2274 class form;
2275
2276
2277} // namespace user
2278
2279
2280class thread;
2281
2282
2283class action_context;
2284
2285
2286class event_map;
2287
2288
2289class thread_ptra;
2290
2291
2292namespace acme
2293{
2294
2295 class topic;
2296
2297} // namespace acme
2298
2299
2300class memory_base;
2301
2302
2303namespace message
2304{
2305
2306
2307 class message;
2308
2309
2310} // namespace status
2311
2312
2313class parents;
2314
2315
2316class children;
2317
2318
2319//namespace exception
2320//{
2321
2322
2323class exception;
2324
2325//using exception_pointer = ::pointer<exception>
2326
2327
2328//} // namespace exception
2329
2330
2331namespace message
2332{
2333
2334
2335 class message;
2336
2337
2338} // namespace message
2339
2340
2341class sticker;
2342
2343
2344using lresult = iptr;
2345
2346
2347namespace mathematics
2348{
2349
2350 class mathematics;
2351
2352} // namespace mathematics
2353
2354
2355//class type;
2356
2357namespace text
2358{
2359
2360 class text;
2361 class data;
2362 class translator;
2363
2364
2365 class table;
2366 class context;
2367
2368
2369 namespace international
2370 {
2371
2372 class locale_schema;
2373
2374 }
2375
2376
2377} // namespace text
2378
2379
2380class conversation;
2381
2382
2383class thread_parameter;
2384
2385
2386class atom;
2387
2388
2389namespace calculator
2390{
2391
2392
2393 class value;
2394
2395
2396} // namespace calculator
2397
2398
2399#ifndef WINDOWS_DESKTOP
2400
2401typedef void* HDWP;
2402
2403#endif
2404
2405
2406namespace factory
2407{
2408
2409
2410 class factory;
2411
2412
2413} // namespace factory
2414
2415
2416typedef bool FN_TIMER(timer* ptimer);
2417
2418
2419typedef FN_TIMER* PFN_TIMER;
2420
2421
2422class happening;
2423
2424
2425namespace html
2426{
2427
2428 class html; // defined and set by html library/component
2429
2430}
2431
2432
2433namespace acme
2434{
2435
2436
2437 class file;
2438
2439
2440 namespace trace
2441 {
2442
2443 class trace;
2444
2445 }
2446
2447
2448} // namespace acme
2449
2450
2451// only usable from base and base dependants
2452namespace berg
2453{
2454
2455 class application;
2456
2457 class session;
2458
2459
2460 class system;
2461
2462}
2463
2464
2465class app_core;
2466
2467
2468namespace xml
2469{
2470
2471
2472 class node;
2473
2474
2475 class document;
2476
2477
2478} // namespace xml
2479
2480
2481typedef void (*PFN_factory)(::factory::factory* pfactory);
2482
2483
2484using argument = payload;
2485
2486
2487namespace message
2488{
2489
2490
2491 class particle;
2492 class key;
2493 class mouse;
2494 class context_menu;
2495
2496
2497} // namespace message
2498
2499
2500class request;
2501
2502
2503namespace nano
2504{
2505
2506 class nano;
2507
2508
2509 namespace http
2510 {
2511 class http;
2512 } //namespace http
2513
2514
2515} // namespace nano
2516
2517
2518template<typename ARGUMENT>
2520{
2521
2522 using type = const ARGUMENT &;
2523
2524};
2525
2526
2527template<typename TYPE>
2529{
2530
2531 using type = TYPE *;
2532
2533};
2534
2535
2536//template < prototype_function FUNCTION >
2537//struct argument_of_struct < FUNCTION >
2538//{
2539//
2540// using type = FUNCTION;
2541//
2542//};
2543
2544
2545template<typename ARGUMENT>
2546using argument_of = typename argument_of_struct<ARGUMENT>::type;
2547
2548
2549namespace user
2550{
2551
2552
2553 class keyboard_state;
2554
2555
2556} // namespace user
2557
2558
2559namespace acme
2560{
2561 class system_factory;
2562
2563}
2564
2565
2566namespace innate_ui
2567{
2568
2569
2570 class innate_ui;
2571
2572
2573} // namespace innate_ui
2574namespace hardware
2575{
2576
2577 class devices;
2578
2579} // namespace hardware
2580
2581namespace aura
2582{
2583
2584 class estamira;
2585
2586} // namespace aura
2587
2588namespace user
2589{
2590
2591 class frame_interaction;
2592
2593} // namespace user
2594
2595
2596namespace networking
2597{
2598
2599 class networking;
2600
2601} // namespace networking
2602
2603
2604class manager_room;
2605
2606
2607namespace parallelization
2608{
2609 class threading;
2610
2611
2612} //namespace parallelization
2613
2614
2615namespace input
2616{
2617
2618 class input;
2619
2620}
2621
2622
2623namespace apex
2624{
2625
2626 class history;
2627
2628}
2629
2630
2631namespace aqua
2632{
2633
2634
2635 class audio;
2636
2637 class audio_mixer;
2638 class multimedia;
2639
2640 class audio_mixe;
2641
2642 class estamira;
2643
2644
2645}
2646
2647
2648struct os_theme_colors;
2649
2650
2651namespace file
2652{
2653 class set;
2654}
2655
2656
2657namespace windowing
2658{
2659 class display;
2660}
2661
2662
2663class get_file_extension_mime_type;
2664//template<class TYPE, class ARG_TYPE, class ARRAY_TYPE>
2665//class comparable_array;
2666class application_menu;
2667
2668
2669namespace user
2670{
2671 class language_map;
2672
2673}
2674
2675
2676namespace interprocess
2677{
2678
2679 class communication;
2680 class handler;
2681
2682}
2683
2684
2685class service_handler;
2686
2687
2688namespace fs
2689{
2690
2691 class folder_sync;
2692 class set;
2693
2694}
2695
2696
2697class service;
2698
2699
2700namespace database
2701{
2702
2703 class client;
2704 class server;
2705
2706}
2707
2708
2709namespace innate_ui
2710{
2711
2712 class icon;
2713
2714}
2715
2716
2717namespace sockets
2718{
2719
2720 class http_session;
2721
2722}
2723
2724
2725namespace networking
2726{
2727
2728 class application_handler;
2729 class application_socket;
2730
2731 class email_department;
2732
2733}
2734
2735
2736namespace number
2737{
2738 class number;
2739} // namespace number
2740
2741
2742class request;
2743
2744
2745namespace progress
2746{
2747
2748
2749 class real;
2750
2751}
2752
2753class shell_open;
2754
2755
2756namespace user
2757{
2758
2759
2760 class interaction_array;
2761 class tab_impact;
2762 class options_impact_handler;
2763 class document;
2764 class split_impact;
2765 class tab;
2766 class menu;
2767
2768
2769}
2770
2771
2772
2773namespace aura
2774{
2775
2776class game;
2777
2778}
2779
2780
2781
2782
2783
2784class main_hold_base;
2785
2786struct platform_media_item_t;
2787namespace aqua
2788{
2789
2790class media_item;
2791
2792}
2793
2794
2795class task_message_queue;
2796
2797
2798
2799#if REFERENCING_DEBUGGING
2800
2801
2802
2803class referencing_debugging;
2804
2805
2806#endif
2807
2808
2809
2810
2811namespace account
2812{
2813
2814
2815 class department;
2816
2817
2818 class user;
2819
2820
2821 class credentials;
2822
2823
2824 class user_set;
2825
2826
2827} // namespace account
2828
2829
2830namespace geo
2831{
2832
2833
2834 class geo;
2835
2836
2837} // namespace geo
2838
2839
2840namespace html
2841{
2842
2843
2844 class html;
2845
2846
2847} // namespace html
2848
2849
2850namespace ftp
2851{
2852
2853
2854 class file_status;
2855
2856
2857} // namespace ftp
2858
2859
2860
2861
2862namespace aqua
2863{
2864
2865
2866 class game;
2867
2868
2869 class media_player;
2870
2871
2872} // namespace aqua
2873
2874
2875
2876
2877enum enum_method : ::i32;
2878enum enum_future : ::i32;
2879
2880
2881
2882
2883#ifdef __clang__
2884
2885template<class T1, class T2>
2886struct is_same_struct : bool_constant<__is_same(T1, T2)>
2887{
2888};
2889
2890#else
2891
2892template<class, class>
2893constexpr bool is_same_type_bool = false;
2894template<class T>
2895constexpr bool is_same_type_bool<T, T> = true;
2896
2897template<class T1, class T2>
2898struct is_same_struct : bool_constant<is_same_type_bool<T1, T2>>
2899{
2900};
2901
2902#endif
2903
2904template<typename T1, typename T2>
2905inline constexpr bool is_same = is_same_struct<T1, T2>::payload;
2906
2907//
2908//template<class>
2909//constexpr bool is_const_bool = false;
2910//
2911//template<class T>
2912//constexpr bool is_const_bool<const T> = true;
2913//
2914//template<class T>
2915//struct is_const_struct : bool_constant<is_const_bool<T>>
2916//{
2917//};
2918//
2919//
2920//template<typename T>
2921//inline constexpr bool is_const = is_const_struct<T1, T2>::payload;
2922
2923
2924template <typename ARRAY>
2926
2927template<typename ARRAY, std::size_t N>
2928struct decay_array_struct<ARRAY[N]>
2929{
2930 using type = ARRAY;
2931};
2932
2933template<typename ARRAY, std::size_t N>
2934struct decay_array_struct<ARRAY (&)[N]> // also handles references to arrays
2935{
2936 using type = ARRAY;
2937};
2938
2939template<typename ARRAY>
2940using decay_array = typename decay_array_struct<ARRAY>::type;
2941
2942//
2943//template<typename T>
2944//struct is_array_struct : ::false_type
2945//{
2946//};
2947//
2948//template<typename T, std::size_t N>
2949//struct is_array_struct<T[N]> : ::true_type
2950//{
2951//};
2952//
2953//template<typename T, std::size_t N>
2954//struct is_array_struct<T (&)[N]> : ::true_type
2955//{
2956//};
2957//
2958//template<typename T>
2959//struct is_array_struct<T[]> : ::true_type
2960//{
2961//};
2962//
2963//template<typename T>
2964//struct is_array_struct<T (&)[]> : ::true_type
2965//{
2966//};
2967//
2968//template<typename T>
2969//inline constexpr bool is_array = is_array_struct<T>::payload;
Definition exclusive.h:13
Definition library.h:10
Definition aaa_timer_array.h:14
Definition window.h:50
Definition action_context.h:9
Definition aaa_app_core.h:47
Definition application_menu.h:24
Definition atom.h:237
Definition base64.h:11
Definition compress.h:10
Definition aaa_conversation.h:10
Definition create_task_attributes.h:28
Definition critical_section.h:9
Definition crypto.h:19
Definition container.h:38
Definition data.h:18
Definition listener.h:17
Definition node.h:26
Definition datetime.h:43
Definition directory_context.h:16
Definition aaa_dir_system.h:10
Definition date_span.h:9
Definition earth_time_span.h:20
Definition earth_time.h:33
Definition error_code.h:22
Definition translator.h:44
Definition extended_topic.h:15
Definition factory.h:39
Definition factory.h:201
Definition file.h:33
Definition listing.h:33
Definition path_array.h:71
Definition path_object.h:15
Definition path.h:52
Definition watcher.h:38
Definition file_context.h:13
Definition aaa_file_system.h:10
Definition file_time.h:11
Definition fixed_alloc.h:16
Definition folder.h:13
Definition geometry.h:25
Definition happening.h:37
Definition item.h:93
Definition lparam.h:9
Definition _main_hold_base.h:10
Definition aaa_manual_reset_event.h:26
Definition mathematics.h:29
Definition matter.h:17
Definition memory_base.h:92
Definition memory_file.h:82
Definition memory.h:33
Definition mq_base.h:6
Definition mutex.h:6
Definition http.h:25
Definition nano.h:23
Definition object_meta.h:10
Definition bbb_object.h:11
Definition process.h:15
Definition summary.h:25
Definition particle.h:95
Definition path_system.h:10
Definition __payload_array.h:13
Definition payload.h:54
Definition application_container.h:14
Definition application.h:64
Definition context.h:30
Definition http.h:22
Definition message.h:16
Definition node.h:33
Definition platform.h:54
Definition session.h:38
Definition system_factory.h:14
Definition system.h:53
Definition property_object.h:21
Definition property_set.h:512
Definition property.h:81
Definition context.h:16
Definition regular_expression.h:20
Definition request.h:61
Definition security_attributes.h:7
Definition stdio_file.h:12
Definition string_buffer.h:69
Definition string_exchange.h:10
Definition string_stream.h:14
Definition subparticle.h:78
Definition tools.h:104
Definition task_message_queue.h:14
Definition pool.h:9
Definition tools.h:86
Definition task.h:117
Definition context.h:103
Definition data.h:22
Definition international_locale_schema.h:19
Definition context.h:54
Definition text.h:13
Definition translator.h:15
Definition aaa_time.h:13
Definition timer.h:67
Definition aaa_timer.h:9
Definition topic.h:17
Definition uncompress.h:10
Definition url.h:435
Definition strdup_array.h:9
Definition wparam.h:10
Definition _forward_declaration.h:318
Definition _forward_declaration.h:429
include "aura/graphics/image/context.h"
Definition aaaa__defer.h:32
Definition filesystem.h:16
include "thread/AutoLock.h"
Definition _forward_declaration.h:877
Created by camilo on 2026-05-28 12:34 <3ThomasBorregaardSørensen!! Mummi!! Bilbo!!
Definition _.h:67
Definition _forward_declaration.h:1298
Definition message.h:13
Definition _forward_declaration.h:1318
Definition _forward_declaration.h:1303
Definition _forward_declaration.h:1308
Definition _forward_declaration.h:1313
Definition _forward_declaration.h:1328
Definition _forward_declaration.h:1323
Definition cmp.h:6
Definition _forward_declaration.h:449
Definition _forward_declaration.h:2520
Definition block.h:46
Definition _forward_declaration.h:80
Definition create_task_attributes.h:12
Definition _forward_declaration.h:2925
Definition _forward_declaration.h:821
Definition _forward_declaration.h:378
Definition _forward_declaration.h:182
Definition _forward_declaration.h:498
Definition _forward_declaration.h:459
Definition _forward_declaration.h:228
Definition status.h:12
Definition _forward_declaration.h:324
Definition _forward_declaration.h:435
Definition _forward_declaration.h:267
Definition _forward_declaration.h:24
Definition _forward_declaration.h:42
Definition _forward_declaration.h:589
Definition _forward_declaration.h:349
Definition _forward_declaration.h:409
Definition _forward_declaration.h:420
Definition _forward_declaration.h:58
Definition _forward_declaration.h:2899
Definition exit_status.h:10
Definition os_theme_colors.h:11
Definition pixmap.h:25
Definition _forward_declaration.h:17