source: src/prelude/prelude.cf @ 13e8427

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsdeferred_resndemanglerenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumwith_gc
Last change on this file since 13e8427 was 13073be, checked in by Thierry Delisle <tdelisle@…>, 6 years ago

Fix atomic builtins in libcfa and prelude

  • Property mode set to 100644
File size: 48.3 KB
Line 
1//
2// Copyright (C) Glen Ditchfield 1994, 1999
3//
4// prelude.cf -- Standard Cforall Preample for C99
5//
6// Author           : Glen Ditchfield
7// Created On       : Sat Nov 29 07:23:41 2014
8// Last Modified By : Peter A. Buhr
9// Last Modified On : Sun Apr 22 13:21:47 2018
10// Update Count     : 103
11//
12
13# 2 "prelude.cf"  // needed for error messages from this file
14
15// Section numbers from: http://plg.uwaterloo.ca/~cforall/refrat.pdf
16
17// ------------------------------------------------------------
18//
19// Section 6.7.11 Trait Declarations
20// Note: the sized trait is used in declarations later in this
21// file, so it must be out of order.
22//
23// ------------------------------------------------------------
24
25trait sized(dtype T) {};
26
27// ------------------------------------------------------------
28//
29// Section 4.1 Primary Expressions
30//
31// ------------------------------------------------------------
32
33//We have none
34
35// ------------------------------------------------------------
36//
37// Section 4.2 Postfix Operators
38//
39// ------------------------------------------------------------
40
41signed short            ?++( signed short & ),                  ?++( volatile signed short & );
42signed short            ?--( signed short & ),                  ?--( volatile signed short & );
43unsigned short          ?++( unsigned short & ),                ?++( volatile unsigned short & );
44unsigned short          ?--( unsigned short & ),                ?--( volatile unsigned short & );
45signed int              ?++( signed int & ),                    ?++( volatile signed int & );
46signed int              ?--( signed int & ),                    ?--( volatile signed int & );
47unsigned int            ?++( unsigned int & ),                  ?++( volatile unsigned int & );
48unsigned int            ?--( unsigned int & ),                  ?--( volatile unsigned int & );
49signed long int         ?++( signed long int & ),               ?++( volatile signed long int & );
50signed long int         ?--( signed long int & ),               ?--( volatile signed long int & );
51unsigned long int       ?++( unsigned long int & ),             ?++( volatile unsigned long int & );
52unsigned long int       ?--( unsigned long int & ),             ?--( volatile unsigned long int & );
53signed long long int    ?++( signed long long int & ),          ?++( volatile signed long long int & );
54signed long long int    ?--( signed long long int & ),          ?--( volatile signed long long int & );
55unsigned long long int  ?++( unsigned long long int & ),        ?++( volatile unsigned long long int & );
56unsigned long long int  ?--( unsigned long long int & ),        ?--( volatile unsigned long long int & );
57float                   ?++( float & ),                         ?++( volatile float & );
58float                   ?--( float & ),                         ?--( volatile float & );
59double                  ?++( double & ),                        ?++( volatile double & );
60double                  ?--( double & ),                        ?--( volatile double & );
61long double             ?++( long double & ),                   ?++( volatile long double & );
62long double             ?--( long double & ),                   ?--( volatile long double & );
63float _Complex          ?++( float _Complex & ),                ?++( volatile float _Complex & );
64float _Complex          ?--( float _Complex & ),                ?--( volatile float _Complex & );
65double _Complex         ?++( double _Complex & ),               ?++( volatile double _Complex & );
66double _Complex         ?--( double _Complex & ),               ?--( volatile double _Complex & );
67long double _Complex    ?++( long double _Complex & ),          ?++( volatile long double _Complex & );
68long double _Complex    ?--( long double _Complex & ),          ?--( volatile long double _Complex & );
69
70forall( dtype T | sized(T) ) T *                         ?++(                T *& );
71forall( dtype T | sized(T) ) const T *           ?++( const          T *& );
72forall( dtype T | sized(T) ) volatile T *                ?++(       volatile T *& );
73forall( dtype T | sized(T) ) const volatile T *  ?++( const volatile T *& );
74forall( dtype T | sized(T) ) T *                         ?--(                T *& );
75forall( dtype T | sized(T) ) const T *           ?--( const          T *& );
76forall( dtype T | sized(T) ) volatile T *                ?--(       volatile T *& );
77forall( dtype T | sized(T) ) const volatile T *  ?--( const volatile T *& );
78
79forall( dtype T | sized(T) ) T &                 ?[?](                T *,          ptrdiff_t );
80forall( dtype T | sized(T) ) const T &   ?[?]( const          T *,          ptrdiff_t );
81forall( dtype T | sized(T) ) volatile T &        ?[?](       volatile T *,          ptrdiff_t );
82forall( dtype T | sized(T) ) const volatile T & ?[?]( const volatile T *,           ptrdiff_t );
83forall( dtype T | sized(T) ) T &                 ?[?](          ptrdiff_t,                T * );
84forall( dtype T | sized(T) ) const T &   ?[?](          ptrdiff_t, const          T * );
85forall( dtype T | sized(T) ) volatile T &        ?[?](          ptrdiff_t,       volatile T * );
86forall( dtype T | sized(T) ) const volatile T & ?[?](           ptrdiff_t, const volatile T * );
87
88// ------------------------------------------------------------
89//
90// Section 4.3 Unary Operators
91//
92// ------------------------------------------------------------
93
94signed short    ++?( signed short & ),                  --?( signed short & );
95signed int              ++?( signed int & ),                    --?( signed int & );
96unsigned short          ++?( unsigned int & ),                  --?( unsigned int & );
97unsigned int            ++?( unsigned short & ),                --?( unsigned short & );
98signed long int         ++?( signed long int & ),               --?( signed long int & );
99unsigned long int       ++?( unsigned long int & ),             --?( unsigned long int & );
100signed long long int    ++?( signed long long int & ),          --?( signed long long int & );
101unsigned long long int  ++?( unsigned long long int & ),        --?( unsigned long long int & );
102float                   ++?( float & ),                         --?( float & );
103double                  ++?( double & ),                        --?( double & );
104long double             ++?( long double & ),                   --?( long double & );
105float _Complex          ++?( float _Complex & ),                --?( float _Complex & );
106double _Complex         ++?( double _Complex & ),               --?( double _Complex & );
107long double _Complex    ++?( long double _Complex & ),          --?( long double _Complex & );
108
109forall( dtype T | sized(T) ) T *                         ++?(                T *& );
110forall( dtype T | sized(T) ) const T *           ++?( const          T *& );
111forall( dtype T | sized(T) ) volatile T *                ++?(       volatile T *& );
112forall( dtype T | sized(T) ) const volatile T *  ++?( const volatile T *& );
113forall( dtype T | sized(T) ) T *                         --?(                T *& );
114forall( dtype T | sized(T) ) const T *           --?( const          T *& );
115forall( dtype T | sized(T) ) volatile T *                --?(       volatile T *& );
116forall( dtype T | sized(T) ) const volatile T *  --?( const volatile T *& );
117
118forall( dtype T | sized(T) ) T &                 *?(                 T * );
119forall( dtype T | sized(T) ) const T &           *?( const           T * );
120forall( dtype T | sized(T) ) volatile T &        *?(       volatile  T * );
121forall( dtype T | sized(T) ) const volatile T & *?( const volatile  T * );
122forall( ftype FT ) FT &          *?( FT * );
123
124_Bool                   +?( _Bool ),                    -?( _Bool );
125signed int              +?( signed int ),               -?( signed int ),               ~?( signed int );
126unsigned int            +?( unsigned int ),             -?( unsigned int ),             ~?( unsigned int );
127signed long int         +?( signed long int ),          -?( signed long int ),          ~?( signed long int );
128unsigned long int       +?( unsigned long int ),        -?( unsigned long int ),        ~?( unsigned long int );
129signed long long int    +?( signed long long int ),     -?( signed long long int ),     ~?( signed long long int );
130unsigned long long int  +?( unsigned long long int ),   -?( unsigned long long int ),   ~?( unsigned long long int );
131float                   +?( float ),                    -?( float );
132double                  +?( double ),                   -?( double );
133long double             +?( long double ),              -?( long double );
134float _Complex          +?( float _Complex ),           -?( float _Complex );
135double _Complex         +?( double _Complex ),          -?( double _Complex );
136long double _Complex    +?( long double _Complex ),     -?( long double _Complex );
137
138signed int      !?( signed int ),               !?( unsigned int ),
139                !?( long int ),                 !?( unsigned long int ),
140                !?( long long int ),            !?( unsigned long long int ),
141                !?( float ),                    !?( double ),                   !?( long double ),
142                !?( float _Complex ),           !?( double _Complex ),          !?( long double _Complex );
143
144forall( dtype DT ) int !?(                DT * );
145forall( dtype DT ) int !?( const          DT * );
146forall( dtype DT ) int !?(       volatile DT * );
147forall( dtype DT ) int !?( const volatile DT * );
148forall( ftype FT ) int !?( FT * );
149
150// ------------------------------------------------------------
151//
152// Section 4.5 Multiplicative Operators
153//
154// ------------------------------------------------------------
155
156signed int              ?*?( signed int, signed int ),                          ?/?( signed int, signed int ),                  ?%?( signed int, signed int );
157unsigned int            ?*?( unsigned int, unsigned int ),                      ?/?( unsigned int, unsigned int ),              ?%?( unsigned int, unsigned int );
158signed long int         ?*?( signed long int, signed long int ),                ?/?( signed long int, signed long int ),        ?%?( signed long int, signed long int );
159unsigned long int       ?*?( unsigned long int, unsigned long int ),            ?/?( unsigned long int, unsigned long int ),    ?%?( unsigned long int, unsigned long int );
160signed long long int    ?*?( signed long long int, signed long long int ),      ?/?( signed long long int, signed long long int ), ?%?( signed long long int, signed long long int );
161unsigned long long int  ?*?( unsigned long long int, unsigned long long int ),  ?/?( unsigned long long int, unsigned long long int ), ?%?( unsigned long long int, unsigned long long int );
162float                   ?*?( float, float ),                                    ?/?( float, float );
163double                  ?*?( double, double ),                                  ?/?( double, double );
164long double             ?*?( long double, long double ),                        ?/?( long double, long double );
165// gcc does not support _Imaginary
166//float _Imaginary      ?*?( float _Imaginary, float _Imaginary),               ?/?( float _Imaginary, float _Imaginary );
167//double _Imaginary     ?*?( double _Imaginary, double _Imaginary),             ?/?( double _Imaginary, double _Imaginary );
168//long double _Imaginary        ?*?( long double _Imaginary, long double _Imaginary),   ?/?( long double _Imaginary, long double _Imaginary );
169float _Complex          ?*?( float _Complex, float _Complex ),                  ?/?( float _Complex, float _Complex );
170double _Complex         ?*?( double _Complex, double _Complex ),                ?/?( double _Complex, double _Complex );
171long double _Complex    ?*?( long double _Complex, long double _Complex ),      ?/?( long double _Complex, long double _Complex );
172
173// ------------------------------------------------------------
174//
175// Section 4.6 Additive Operators
176//
177// ------------------------------------------------------------
178
179_Bool                   ?+?( _Bool, _Bool ),                                    ?-?( _Bool, _Bool );
180signed int              ?+?( signed int, signed int ),                          ?-?( signed int, signed int );
181unsigned int            ?+?( unsigned int, unsigned int ),                      ?-?( unsigned int, unsigned int );
182signed long int         ?+?( signed long int, signed long int ),                ?-?( signed long int, signed long int );
183unsigned long int       ?+?( unsigned long int, unsigned long int ),            ?-?( unsigned long int, unsigned long int );
184signed long long int    ?+?( signed long long int, long long int  signed),      ?-?( signed long long int, signed long long int );
185unsigned long long int  ?+?( unsigned long long int, unsigned long long int ),  ?-?( unsigned long long int, unsigned long long int );
186float                   ?+?( float, float ),                                    ?-?( float, float );
187double                  ?+?( double, double ),                                  ?-?( double, double );
188long double             ?+?( long double, long double ),                        ?-?( long double, long double );
189float _Complex          ?+?( float _Complex, float _Complex ),                  ?-?( float _Complex, float _Complex );
190double _Complex         ?+?( double _Complex, double _Complex ),                ?-?( double _Complex, double _Complex );
191long double _Complex    ?+?( long double _Complex, long double _Complex ),      ?-?( long double _Complex, long double _Complex );
192
193forall( dtype T | sized(T) ) T *                ?+?(                T *,          ptrdiff_t );
194forall( dtype T | sized(T) ) T *                ?+?(          ptrdiff_t,                T * );
195forall( dtype T | sized(T) ) const T *          ?+?( const          T *,          ptrdiff_t );
196forall( dtype T | sized(T) ) const T *          ?+?(          ptrdiff_t, const          T * );
197forall( dtype T | sized(T) ) volatile T *       ?+?(       volatile T *,          ptrdiff_t );
198forall( dtype T | sized(T) ) volatile T *       ?+?(          ptrdiff_t,       volatile T * );
199forall( dtype T | sized(T) ) const volatile T * ?+?( const volatile T *,          ptrdiff_t );
200forall( dtype T | sized(T) ) const volatile T * ?+?(          ptrdiff_t, const volatile T * );
201forall( dtype T | sized(T) ) T *                ?-?(                T *,          ptrdiff_t );
202forall( dtype T | sized(T) ) const T *          ?-?( const          T *,          ptrdiff_t );
203forall( dtype T | sized(T) ) volatile T *       ?-?(       volatile T *,          ptrdiff_t );
204forall( dtype T | sized(T) ) const volatile T * ?-?( const volatile T *,          ptrdiff_t );
205forall( dtype T | sized(T) ) ptrdiff_t          ?-?( const volatile T *, const volatile T * );
206
207// ------------------------------------------------------------
208//
209// Section 4.7 Bitwise Shift Operators
210//
211// ------------------------------------------------------------
212
213signed int              ?<<?( signed int, signed int ),                         ?>>?( signed int, signed int );
214unsigned int            ?<<?( unsigned int, unsigned int ),                     ?>>?( unsigned int, unsigned int );
215signed long int         ?<<?( signed long int, signed long int ),               ?>>?( signed long int, signed long int );
216unsigned long int       ?<<?( unsigned long int, unsigned long int ),           ?>>?( unsigned long int, unsigned long int );
217signed long long int    ?<<?( signed long long int, signed long long int ),     ?>>?( signed long long int, signed long long int );
218unsigned long long int  ?<<?( unsigned long long int, unsigned long long int ), ?>>?( unsigned long long int, unsigned long long int );
219
220// ------------------------------------------------------------
221//
222// Section 4.8 Relational Operators
223//
224// ------------------------------------------------------------
225
226signed int ?<?( _Bool, _Bool ),                                         ?<=?( _Bool, _Bool ),
227           ?>?( _Bool, _Bool ),                                         ?>=?( _Bool, _Bool );
228signed int ?<?( char, char ),                                           ?<=?( char, char ),
229           ?>?( char, char ),                                           ?>=?( char, char );
230signed int ?<?( signed char, signed char ),                             ?<=?( signed char, signed char ),
231           ?>?( signed char, signed char ),                             ?>=?( signed char, signed char );
232signed int ?<?( unsigned char, unsigned char ),                         ?<=?( unsigned char, unsigned char ),
233           ?>?( unsigned char, unsigned char ),                         ?>=?( unsigned char, unsigned char );
234signed int ?<?( signed short, signed short ),                           ?<=?( signed short, signed short ),
235           ?>?( signed short, signed short ),                           ?>=?( signed short, signed short );
236signed int ?<?( unsigned short, unsigned short ),                       ?<=?( unsigned short, unsigned short ),
237           ?>?( unsigned short, unsigned short ),                       ?>=?( unsigned short, unsigned short );
238signed int ?<?( signed int, signed int ),                               ?<=?( signed int, signed int ),
239           ?>?( signed int, signed int ),                               ?>=?( signed int, signed int );
240signed int ?<?( unsigned int, unsigned int ),                           ?<=?( unsigned int, unsigned int ),
241           ?>?( unsigned int, unsigned int ),                           ?>=?( unsigned int, unsigned int );
242signed int ?<?( signed long int, signed long int ),                     ?<=?( signed long int, signed long int ),
243           ?>?( signed long int, signed long int ),                     ?>=?( signed long int, signed long int );
244signed int ?<?( unsigned long int, unsigned long int ),                 ?<=?( unsigned long int, unsigned long int ),
245           ?>?( unsigned long int, unsigned long int ),                 ?>=?( unsigned long int, unsigned long int );
246signed int ?<?( signed long long int, signed long long int ),           ?<=?( signed long long int, signed long long int ),
247           ?>?( signed long long int, signed long long int ),           ?>=?( signed long long int, signed long long int );
248signed int ?<?( unsigned long long int, unsigned long long int ),       ?<=?( unsigned long long int, unsigned long long int ),
249           ?>?( unsigned long long int, unsigned long long int ),       ?>=?( unsigned long long int, unsigned long long int );
250signed int ?<?( float, float ),                                         ?<=?( float, float ),
251           ?>?( float, float ),                                         ?>=?( float, float );
252signed int ?<?( double, double ),                                       ?<=?( double, double ),
253           ?>?( double, double ),                                       ?>=?( double, double );
254signed int ?<?( long double, long double ),                             ?<=?( long double, long double ),
255           ?>?( long double, long double ),                             ?>=?( long double, long double );
256
257forall( dtype DT ) signed int ?<?(                 DT *,                DT * );
258forall( dtype DT ) signed int ?<?(  const          DT *, const          DT * );
259forall( dtype DT ) signed int ?<?(        volatile DT *,       volatile DT * );
260forall( dtype DT ) signed int ?<?(  const volatile DT *, const volatile DT * );
261
262forall( dtype DT ) signed int ?>?(                 DT *,                DT * );
263forall( dtype DT ) signed int ?>?(  const          DT *, const          DT * );
264forall( dtype DT ) signed int ?>?(        volatile DT *,       volatile DT * );
265forall( dtype DT ) signed int ?>?(  const volatile DT *, const volatile DT * );
266
267forall( dtype DT ) signed int ?<=?(                 DT *,                DT * );
268forall( dtype DT ) signed int ?<=?(  const          DT *, const          DT * );
269forall( dtype DT ) signed int ?<=?(        volatile DT *,       volatile DT * );
270forall( dtype DT ) signed int ?<=?( const volatile DT *, const volatile DT * );
271
272forall( dtype DT ) signed int ?>=?(                 DT *,                DT * );
273forall( dtype DT ) signed int ?>=?(  const          DT *, const          DT * );
274forall( dtype DT ) signed int ?>=?(        volatile DT *,       volatile DT * );
275forall( dtype DT ) signed int ?>=?( const volatile DT *, const volatile DT * );
276
277// ------------------------------------------------------------
278//
279// Section 4.9 Equality Operators
280//
281// ------------------------------------------------------------
282
283signed int ?==?( _Bool, _Bool ),                                                        ?!=?( _Bool, _Bool );
284signed int ?==?( char, char ),                                                          ?!=?( char, char );
285signed int ?==?( signed char, signed char ),                            ?!=?( signed char, signed char );
286signed int ?==?( unsigned char, unsigned char ),                        ?!=?( unsigned char, unsigned char );
287signed int ?==?( signed short, signed short ),                          ?!=?( signed short, signed short );
288signed int ?==?( unsigned short, unsigned short ),                      ?!=?( unsigned short, unsigned short );
289signed int ?==?( signed int, signed int ),                                      ?!=?( signed int, signed int );
290signed int ?==?( unsigned int, unsigned int ),                                  ?!=?( unsigned int, unsigned int );
291signed int ?==?( signed long int, signed long int ),                            ?!=?( signed long int, signed long int );
292signed int ?==?( unsigned long int, unsigned long int ),                        ?!=?( unsigned long int, unsigned long int );
293signed int ?==?( signed long long int, long long int  signed),          ?!=?( signed long long int, signed long long int );
294signed int ?==?( unsigned long long int, unsigned long long int ),      ?!=?( unsigned long long int, unsigned long long int );
295signed int ?==?( float, float ),                                                        ?!=?( float, float );
296signed int ?==?( double, double ),                                                      ?!=?( double, double );
297signed int ?==?( long double, long double ),                                    ?!=?( long double, long double );
298signed int ?==?( float _Complex, float _Complex ),                              ?!=?( float _Complex, float _Complex );
299signed int ?==?( double _Complex, double _Complex ),                            ?!=?( double _Complex, double _Complex );
300signed int ?==?( long double _Complex, long double _Complex ),          ?!=?( long double _Complex, long double _Complex );
301signed int ?==?( zero_t, zero_t ),                                                      ?!=?( zero_t, zero_t );
302signed int ?==?( one_t, one_t ),                                                        ?!=?( one_t, one_t );
303
304forall( dtype DT ) signed int ?==?(                DT *,                DT * );
305forall( dtype DT ) signed int ?==?( const          DT *, const          DT * );
306forall( dtype DT ) signed int ?==?(       volatile DT *,       volatile DT * );
307forall( dtype DT ) signed int ?==?( const volatile DT *, const volatile DT * );
308forall( ftype FT ) signed int ?==?( FT *, FT * );
309forall( dtype DT ) signed int ?!=?(                DT *,                DT * );
310forall( dtype DT ) signed int ?!=?( const          DT *, const          DT * );
311forall( dtype DT ) signed int ?!=?(       volatile DT *,       volatile DT * );
312forall( dtype DT ) signed int ?!=?( const volatile DT *, const volatile DT * );
313forall( ftype FT ) signed int ?!=?( FT *, FT * );
314
315// forall( dtype DT ) signed int ?==?( const volatile DT   *, const volatile void * );
316// forall( dtype DT ) signed int ?==?( const volatile void *, const volatile DT * );
317// forall( dtype DT ) signed int ?!=?( const volatile DT   *, const volatile void * );
318// forall( dtype DT ) signed int ?!=?( const volatile void *, const volatile DT * );
319
320// forall( dtype DT ) signed int ?==?( const volatile DT *, zero_t );
321// forall( dtype DT ) signed int ?==?( zero_t, const volatile DT * );
322// forall( ftype FT ) signed int ?==?( FT *, zero_t );
323// forall( ftype FT ) signed int ?==?( zero_t, FT * );
324// forall( dtype DT ) signed int ?!=?( const volatile DT *, zero_t );
325// forall( dtype DT ) signed int ?!=?( zero_t, const volatile DT * );
326// forall( ftype FT ) signed int ?!=?( FT *, zero_t );
327// forall( ftype FT ) signed int ?!=?( zero_t, FT * );
328
329// ------------------------------------------------------------
330//
331// Section 4.10 Bitwise AND Operators
332//
333// ------------------------------------------------------------
334
335_Bool                   ?&?( _Bool, _Bool );
336signed int              ?&?( signed int, signed int );
337unsigned int            ?&?( unsigned int, unsigned int );
338signed long int         ?&?( signed long int, signed long int );
339unsigned long int       ?&?( unsigned long int, unsigned long int );
340signed long long int    ?&?( signed long long int, signed long long int );
341unsigned long long int  ?&?( unsigned long long int, unsigned long long int );
342
343// ------------------------------------------------------------
344//
345// Section 4.11 Bitwise XOR Operators
346//
347// ------------------------------------------------------------
348
349_Bool                   ?^?( _Bool, _Bool );
350signed int              ?^?( signed int, signed int );
351unsigned int            ?^?( unsigned int, unsigned int );
352signed long int         ?^?( signed long int, signed long int );
353unsigned long int       ?^?( unsigned long int, unsigned long int );
354signed long long int    ?^?( signed long long int, signed long long int );
355unsigned long long int  ?^?( unsigned long long int, unsigned long long int );
356
357// ------------------------------------------------------------
358//
359// Section 4.12 Bitwise OR Operators
360//
361// ------------------------------------------------------------
362
363_Bool                   ?|?( _Bool, _Bool );
364signed int              ?|?( signed int, signed int );
365unsigned int            ?|?( unsigned int, unsigned int );
366signed long int         ?|?( signed long int, signed long int );
367unsigned long int       ?|?( unsigned long int, unsigned long int );
368signed long long int    ?|?( signed long long int, signed long long int );
369unsigned long long int  ?|?( unsigned long long int, unsigned long long int );
370
371// ------------------------------------------------------------
372//
373// Section 4.16 Assignment Operator
374//
375// ------------------------------------------------------------
376
377forall( ftype FT ) FT *                 ?=?( FT *&, FT * );
378forall( ftype FT ) FT *                 ?=?( FT * volatile &, FT * );
379
380forall( dtype DT ) DT *                 ?=?(                 DT *          &,                   DT * );
381forall( dtype DT ) DT *                 ?=?(                 DT * volatile &,                   DT * );
382forall( dtype DT ) const DT *           ?=?( const           DT *          &,                   DT * );
383forall( dtype DT ) const DT *           ?=?( const           DT * volatile &,                   DT * );
384forall( dtype DT ) const DT *           ?=?( const           DT *          &, const             DT * );
385forall( dtype DT ) const DT *           ?=?( const           DT * volatile &, const             DT * );
386forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          &,                   DT * );
387forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile &,                   DT * );
388forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          &,       volatile    DT * );
389forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile &,       volatile    DT * );
390
391forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &,                   DT * );
392forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &,                   DT * );
393forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &, const             DT * );
394forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &, const             DT * );
395forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &,       volatile    DT * );
396forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &,       volatile    DT * );
397forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &, const volatile    DT * );
398forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &, const volatile    DT * );
399
400forall( dtype DT ) void *                ?=?(                void *          &,                 DT * );
401forall( dtype DT ) void *                ?=?(                void * volatile &,                 DT * );
402forall( dtype DT ) const void *          ?=?( const          void *          &,                 DT * );
403forall( dtype DT ) const void *          ?=?( const          void * volatile &,                 DT * );
404forall( dtype DT ) const void *          ?=?( const          void *          &, const           DT * );
405forall( dtype DT ) const void *          ?=?( const          void * volatile &, const           DT * );
406forall( dtype DT ) volatile void *       ?=?(       volatile void *          &,                 DT * );
407forall( dtype DT ) volatile void *       ?=?(       volatile void * volatile &,                 DT * );
408forall( dtype DT ) volatile void *       ?=?(       volatile void *          &,       volatile  DT * );
409forall( dtype DT ) volatile void *       ?=?(       volatile void * volatile &,       volatile  DT * );
410forall( dtype DT ) const volatile void * ?=?( const volatile void *          &,                 DT * );
411forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile &,                 DT * );
412forall( dtype DT ) const volatile void * ?=?( const volatile void *          &, const           DT * );
413forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile &, const           DT * );
414forall( dtype DT ) const volatile void * ?=?( const volatile void *          &,       volatile  DT * );
415forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile &,       volatile  DT * );
416forall( dtype DT ) const volatile void * ?=?( const volatile void *          &, const volatile  DT * );
417forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile &, const volatile  DT * );
418
419//forall( dtype DT ) DT *                       ?=?(                DT *          &, zero_t );
420//forall( dtype DT ) DT *                       ?=?(                DT * volatile &, zero_t );
421forall( dtype DT ) const DT *           ?=?( const          DT *          &, zero_t );
422forall( dtype DT ) const DT *           ?=?( const          DT * volatile &, zero_t );
423//forall( dtype DT ) volatile DT *      ?=?( volatile       DT *          &, zero_t );
424//forall( dtype DT ) volatile DT *      ?=?( volatile       DT * volatile &, zero_t );
425forall( dtype DT ) const volatile DT *  ?=?( const volatile DT *          &, zero_t );
426forall( dtype DT ) const volatile DT *  ?=?( const volatile DT * volatile &, zero_t );
427
428forall( ftype FT ) FT *                 ?=?( FT *          &, zero_t );
429forall( ftype FT ) FT *                 ?=?( FT * volatile &, zero_t );
430
431forall( dtype T | sized(T) ) T *                ?+=?(                T *          &, ptrdiff_t );
432forall( dtype T | sized(T) ) T *                ?+=?(                T * volatile &, ptrdiff_t );
433forall( dtype T | sized(T) ) const T *          ?+=?( const          T *          &, ptrdiff_t );
434forall( dtype T | sized(T) ) const T *          ?+=?( const          T * volatile &, ptrdiff_t );
435forall( dtype T | sized(T) ) volatile T *       ?+=?(       volatile T *          &, ptrdiff_t );
436forall( dtype T | sized(T) ) volatile T *       ?+=?(       volatile T * volatile &, ptrdiff_t );
437forall( dtype T | sized(T) ) const volatile T * ?+=?( const volatile T *          &, ptrdiff_t );
438forall( dtype T | sized(T) ) const volatile T * ?+=?( const volatile T * volatile &, ptrdiff_t );
439forall( dtype T | sized(T) ) T *                ?-=?(                T *          &, ptrdiff_t );
440forall( dtype T | sized(T) ) T *                ?-=?(                T * volatile &, ptrdiff_t );
441forall( dtype T | sized(T) ) const T *          ?-=?( const          T *          &, ptrdiff_t );
442forall( dtype T | sized(T) ) const T *          ?-=?( const          T * volatile &, ptrdiff_t );
443forall( dtype T | sized(T) ) volatile T *       ?-=?(       volatile T *          &, ptrdiff_t );
444forall( dtype T | sized(T) ) volatile T *       ?-=?(       volatile T * volatile &, ptrdiff_t );
445forall( dtype T | sized(T) ) const volatile T * ?-=?( const volatile T *          &, ptrdiff_t );
446forall( dtype T | sized(T) ) const volatile T * ?-=?( const volatile T * volatile &, ptrdiff_t );
447
448_Bool                   ?=?( _Bool &, _Bool ),                                  ?=?( volatile _Bool &, _Bool );
449char                    ?=?( char &, char ),                                    ?=?( volatile char &, char );
450char signed             ?=?( char signed &, char signed ),                      ?=?( volatile char signed &, char signed );
451char unsigned           ?=?( char unsigned &, char unsigned ),                  ?=?( volatile char unsigned &, char unsigned );
452int short               ?=?( int short &, int short ),                          ?=?( volatile int short &, int short );
453int short unsigned      ?=?( int short unsigned &, int short unsigned ),        ?=?( volatile int short unsigned &, int short unsigned );
454signed int              ?=?( signed int &, signed int ),                        ?=?( volatile signed int &, signed int );
455unsigned int            ?=?( unsigned &, unsigned ),                            ?=?( volatile unsigned &, unsigned );
456signed long int         ?=?( signed long int &, signed long int ),              ?=?( volatile signed long int &, signed long int );
457unsigned long int       ?=?( unsigned long int &, unsigned long int ),          ?=?( volatile unsigned long int &, unsigned long int );
458signed long long int    ?=?( signed long long int &, signed long long int ),    ?=?( volatile signed long long int &, signed long long int );
459unsigned long long int  ?=?( unsigned long long int &, unsigned long long int ), ?=?( volatile unsigned long long int &, unsigned long long int );
460__int128        ?=?( __int128 &, __int128 ),    ?=?( volatile __int128 &, __int128 );
461zero_t                  ?=?( zero_t &, zero_t );
462one_t                   ?=?( one_t &, one_t );
463
464
465char                    ?*=?( char &, char ),                                   ?*=?( volatile char &, char );
466char signed             ?*=?( char signed &, char signed ),                     ?*=?( volatile char signed &, char signed );
467char unsigned           ?*=?( char unsigned &, char unsigned ),                 ?*=?( volatile char unsigned &, char unsigned );
468int short               ?*=?( int short &, int short ),                         ?*=?( volatile int short &, int short );
469int short unsigned      ?*=?( int short unsigned &, int short unsigned ),       ?*=?( volatile int short unsigned &, int short unsigned );
470signed int              ?*=?( signed int &, signed int ),                       ?*=?( volatile signed int &, signed int );
471unsigned int            ?*=?( unsigned &, unsigned ),                           ?*=?( volatile unsigned &, unsigned );
472signed long int         ?*=?( signed long int &, signed long int ),             ?*=?( volatile signed long int &, signed long int );
473unsigned long int       ?*=?( unsigned long int &, unsigned long int ),         ?*=?( volatile unsigned long int &, unsigned long int );
474signed long long int    ?*=?( signed long long int &, signed long long int ),   ?*=?( volatile signed long long int &, signed long long int );
475unsigned long long int  ?*=?( unsigned long long int &, unsigned long long int ), ?*=?( volatile unsigned long long int &, unsigned long long int );
476
477_Bool                   ?/=?( _Bool &, _Bool ),                                 ?/=?( volatile _Bool &, _Bool );
478char                    ?/=?( char &, char ),                                   ?/=?( volatile char &, char );
479char signed             ?/=?( char signed &, char signed ),                     ?/=?( volatile char signed &, char signed );
480char unsigned           ?/=?( char unsigned &, char unsigned ),                 ?/=?( volatile char unsigned &, char unsigned );
481int short               ?/=?( int short &, int short ),                         ?/=?( volatile int short &, int short );
482int short unsigned      ?/=?( int short unsigned &, int short unsigned ),       ?/=?( volatile int short unsigned &, int short unsigned );
483signed int              ?/=?( signed int &, signed int ),                       ?/=?( volatile signed int &, signed int );
484unsigned int            ?/=?( unsigned &, unsigned ),                           ?/=?( volatile unsigned &, unsigned );
485signed long int         ?/=?( signed long int &, signed long int ),             ?/=?( volatile signed long int &, signed long int );
486unsigned long int       ?/=?( unsigned long int &, unsigned long int ),         ?/=?( volatile unsigned long int &, unsigned long int );
487signed long long int    ?/=?( signed long long int &, signed long long int ),   ?/=?( volatile signed long long int &, signed long long int );
488unsigned long long int  ?/=?( unsigned long long int &, unsigned long long int ), ?/=?( volatile unsigned long long int &, unsigned long long int );
489
490_Bool                   ?%=?( _Bool &, _Bool ),                                 ?%=?( volatile _Bool &, _Bool );
491char                    ?%=?( char &, char ),                                   ?%=?( volatile char &, char );
492char signed             ?%=?( char signed &, char signed ),                     ?%=?( volatile char signed &, char signed );
493char unsigned           ?%=?( char unsigned &, char unsigned ),                 ?%=?( volatile char unsigned &, char unsigned );
494int short               ?%=?( int short &, int short ),                         ?%=?( volatile int short &, int short );
495int short unsigned      ?%=?( int short unsigned &, int short unsigned ),       ?%=?( volatile int short unsigned &, int short unsigned );
496signed int              ?%=?( signed int &, signed int ),                       ?%=?( volatile signed int &, signed int );
497unsigned int            ?%=?( unsigned &, unsigned ),                           ?%=?( volatile unsigned &, unsigned );
498signed long int         ?%=?( signed long int &, signed long int ),             ?%=?( volatile signed long int &, signed long int );
499unsigned long int       ?%=?( unsigned long int &, unsigned long int ),         ?%=?( volatile unsigned long int &, unsigned long int );
500signed long long int    ?%=?( signed long long int &, signed long long int ),   ?%=?( volatile signed long long int &, signed long long int );
501unsigned long long int  ?%=?( unsigned long long int &, unsigned long long int ), ?%=?( volatile unsigned long long int &, unsigned long long int );
502
503_Bool                   ?+=?( _Bool &, _Bool ),                                 ?+=?( volatile _Bool &, _Bool );
504char                    ?+=?( char &, char ),                                   ?+=?( volatile char &, char );
505char signed             ?+=?( char signed &, char signed ),                     ?+=?( volatile char signed &, char signed );
506char unsigned           ?+=?( char unsigned &, char unsigned ),                 ?+=?( volatile char unsigned &, char unsigned );
507int short               ?+=?( int short &, int short ),                         ?+=?( volatile int short &, int short );
508int short unsigned      ?+=?( int short unsigned &, int short unsigned ),       ?+=?( volatile int short unsigned &, int short unsigned );
509signed int              ?+=?( signed int &, signed int ),                       ?+=?( volatile signed int &, signed int );
510unsigned int            ?+=?( unsigned &, unsigned ),                           ?+=?( volatile unsigned &, unsigned );
511signed long int         ?+=?( signed long int &, signed long int ),             ?+=?( volatile signed long int &, signed long int );
512unsigned long int       ?+=?( unsigned long int &, unsigned long int ),         ?+=?( volatile unsigned long int &, unsigned long int );
513signed long long int    ?+=?( signed long long int &, signed long long int ),   ?+=?( volatile signed long long int &, signed long long int );
514unsigned long long int  ?+=?( unsigned long long int &, unsigned long long int ), ?+=?( volatile unsigned long long int &, unsigned long long int );
515//signed int128         ?+=?( signed int128 &, signed int128 ),                 ?+=?( volatile signed int128 &, signed int128 );
516//unsigned int128               ?+=?( unsigned int128 &, unsigned int128 ),             ?+=?( volatile unsigned int128 &, unsigned int128 );
517
518_Bool                   ?-=?( _Bool &, _Bool ),                                 ?-=?( volatile _Bool &, _Bool );
519char                    ?-=?( char &, char ),                                   ?-=?( volatile char &, char );
520char signed             ?-=?( char signed &, char signed ),                     ?-=?( volatile char signed &, char signed );
521char unsigned           ?-=?( char unsigned &, char unsigned ),                 ?-=?( volatile char unsigned &, char unsigned );
522int short               ?-=?( int short &, int short ),                         ?-=?( volatile int short &, int short );
523int short unsigned      ?-=?( int short unsigned &, int short unsigned ),       ?-=?( volatile int short unsigned &, int short unsigned );
524signed int              ?-=?( signed int &, signed int ),                       ?-=?( volatile signed int &, signed int );
525unsigned int            ?-=?( unsigned &, unsigned ),                           ?-=?( volatile unsigned &, unsigned );
526signed long int         ?-=?( signed long int &, signed long int ),             ?-=?( volatile signed long int &, signed long int );
527unsigned long int       ?-=?( unsigned long int &, unsigned long int ),         ?-=?( volatile unsigned long int &, unsigned long int );
528signed long long int    ?-=?( signed long long int &, signed long long int ),   ?-=?( volatile signed long long int &, signed long long int );
529unsigned long long int  ?-=?( unsigned long long int &, unsigned long long int ), ?-=?( volatile unsigned long long int &, unsigned long long int );
530
531char                    ?<<=?( char &, char ),                                  ?<<=?( volatile char &, char );
532char signed             ?<<=?( char signed &, char signed ),                    ?<<=?( volatile char signed &, char signed );
533char unsigned           ?<<=?( char unsigned &, char unsigned ),                ?<<=?( volatile char unsigned &, char unsigned );
534int short               ?<<=?( int short &, int short ),                        ?<<=?( volatile int short &, int short );
535int short unsigned      ?<<=?( int short unsigned &, int short unsigned ),      ?<<=?( volatile int short unsigned &, int short unsigned );
536signed int              ?<<=?( signed int &, signed int ),                      ?<<=?( volatile signed int &, signed int );
537unsigned int            ?<<=?( unsigned &, unsigned ),                          ?<<=?( volatile unsigned &, unsigned );
538signed long int         ?<<=?( signed long int &, signed long int ),            ?<<=?( volatile signed long int &, signed long int );
539unsigned long int       ?<<=?( unsigned long int &, unsigned long int ),        ?<<=?( volatile unsigned long int &, unsigned long int );
540signed long long int    ?<<=?( signed long long int &, signed long long int ),  ?<<=?( volatile signed long long int &, signed long long int );
541unsigned long long int  ?<<=?( unsigned long long int &, unsigned long long int ), ?<<=?( volatile unsigned long long int &, unsigned long long int );
542
543char                    ?>>=?( char &, char ),                                  ?>>=?( volatile char &, char );
544char signed             ?>>=?( char signed &, char signed ),                    ?>>=?( volatile char signed &, char signed );
545char unsigned           ?>>=?( char unsigned &, char unsigned ),                ?>>=?( volatile char unsigned &, char unsigned );
546int short               ?>>=?( int short &, int short ),                        ?>>=?( volatile int short &, int short );
547int short unsigned      ?>>=?( int short unsigned &, int short unsigned ),      ?>>=?( volatile int short unsigned &, int short unsigned );
548signed int              ?>>=?( signed int &, signed int ),                      ?>>=?( volatile signed int &, signed int );
549unsigned int            ?>>=?( unsigned &, unsigned ),                          ?>>=?( volatile unsigned &, unsigned );
550signed long int         ?>>=?( signed long int &, signed long int ),            ?>>=?( volatile signed long int &, signed long int );
551unsigned long int       ?>>=?( unsigned long int &, unsigned long int ),        ?>>=?( volatile unsigned long int &, unsigned long int );
552signed long long int    ?>>=?( signed long long int &, signed long long int ),  ?>>=?( volatile signed long long int &, signed long long int );
553unsigned long long int  ?>>=?( unsigned long long int &, unsigned long long int ), ?>>=?( volatile unsigned long long int &, unsigned long long int );
554
555_Bool                   ?&=?( _Bool &, _Bool ),                                 ?&=?( volatile _Bool &, _Bool );
556char                    ?&=?( char &, char ),                                   ?&=?( volatile char &, char );
557char signed             ?&=?( char signed &, char signed ),                     ?&=?( volatile char signed &, char signed );
558char unsigned           ?&=?( char unsigned &, char unsigned ),                 ?&=?( volatile char unsigned &, char unsigned );
559int short               ?&=?( int short &, int short ),                         ?&=?( volatile int short &, int short );
560int short unsigned      ?&=?( int short unsigned &, int short unsigned ),       ?&=?( volatile int short unsigned &, int short unsigned );
561signed int              ?&=?( signed int &, signed int ),                       ?&=?( volatile signed int &, signed int );
562unsigned int            ?&=?( unsigned &, unsigned ),                           ?&=?( volatile unsigned &, unsigned );
563signed long int         ?&=?( signed long int &, signed long int ),             ?&=?( volatile signed long int &, signed long int );
564unsigned long int       ?&=?( unsigned long int &, unsigned long int ),         ?&=?( volatile unsigned long int &, unsigned long int );
565signed long long int    ?&=?( signed long long int &, signed long long int ),   ?&=?( volatile signed long long int &, signed long long int );
566unsigned long long int  ?&=?( unsigned long long int &, unsigned long long int ), ?&=?( volatile unsigned long long int &, unsigned long long int );
567
568_Bool                   ?|=?( _Bool &, _Bool ),                                 ?|=?( volatile _Bool &, _Bool );
569char                    ?|=?( char &, char ),                                   ?|=?( volatile char &, char );
570char signed             ?|=?( char signed &, char signed ),                     ?|=?( volatile char signed &, char signed );
571char unsigned           ?|=?( char unsigned &, char unsigned ),                 ?|=?( volatile char unsigned &, char unsigned );
572int short               ?|=?( int short &, int short ),                         ?|=?( volatile int short &, int short );
573int short unsigned      ?|=?( int short unsigned &, int short unsigned ),       ?|=?( volatile int short unsigned &, int short unsigned );
574signed int              ?|=?( signed int &, signed int ),                       ?|=?( volatile signed int &, signed int );
575unsigned int            ?|=?( unsigned &, unsigned ),                           ?|=?( volatile unsigned &, unsigned );
576signed long int         ?|=?( signed long int &, signed long int ),             ?|=?( volatile signed long int &, signed long int );
577unsigned long int       ?|=?( unsigned long int &, unsigned long int ),         ?|=?( volatile unsigned long int &, unsigned long int );
578signed long long int    ?|=?( signed long long int &, signed long long int ),   ?|=?( volatile signed long long int &, signed long long int );
579unsigned long long int  ?|=?( unsigned long long int &, unsigned long long int ), ?|=?( volatile unsigned long long int &, unsigned long long int );
580
581_Bool                   ?^=?( _Bool &, _Bool ),                                 ?^=?( volatile _Bool &, _Bool );
582char                    ?^=?( char &, char ),                                   ?^=?( volatile char &, char );
583char signed             ?^=?( char signed &, char signed ),                     ?^=?( volatile char signed &, char signed );
584char unsigned           ?^=?( char unsigned &, char unsigned ),                 ?^=?( volatile char unsigned &, char unsigned );
585int short               ?^=?( int short &, int short ),                         ?^=?( volatile int short &, int short );
586int short unsigned      ?^=?( int short unsigned &, int short unsigned ),       ?^=?( volatile int short unsigned &, int short unsigned );
587signed int              ?^=?( signed int &, signed int ),                       ?^=?( volatile signed int &, signed int );
588unsigned int            ?^=?( unsigned &, unsigned ),                           ?^=?( volatile unsigned &, unsigned );
589signed long int         ?^=?( signed long int &, signed long int ),             ?^=?( volatile signed long int &, signed long int );
590unsigned long int       ?^=?( unsigned long int &, unsigned long int ),         ?^=?( volatile unsigned long int &, unsigned long int );
591signed long long int    ?^=?( signed long long int &, signed long long int ),   ?^=?( volatile signed long long int &, signed long long int );
592unsigned long long int  ?^=?( unsigned long long int &, unsigned long long int ), ?^=?( volatile unsigned long long int &, unsigned long long int );
593
594float                   ?=?(  float &, float ), ?=?(  volatile float &, float ),
595                        ?*=?( float &, float ), ?*=?( volatile float &, float ),
596                        ?/=?( float &, float ), ?/=?( volatile float &, float ),
597                        ?+=?( float &, float ), ?+=?( volatile float &, float ),
598                        ?-=?( float &, float ), ?-=?( volatile float &, float );
599
600double                  ?=?(  double &, double ), ?=?(  volatile double &, double ),
601                        ?*=?( double &, double ), ?*=?( volatile double &, double ),
602                        ?/=?( double &, double ), ?/=?( volatile double &, double ),
603                        ?+=?( double &, double ), ?+=?( volatile double &, double ),
604                        ?-=?( double &, double ), ?-=?( volatile double &, double );
605
606long double             ?=?(  long double &, long double ), ?=?(  volatile long double &, long double ),
607                        ?*=?( long double &, long double ), ?*=?( volatile long double &, long double ),
608                        ?/=?( long double &, long double ), ?/=?( volatile long double &, long double ),
609                        ?+=?( long double &, long double ), ?+=?( volatile long double &, long double ),
610                        ?-=?( long double &, long double ), ?-=?( volatile long double &, long double );
611
612float _Complex          ?=?(  float _Complex &, float _Complex ), ?=?(  volatile float _Complex &, float _Complex ),
613                        ?*=?( float _Complex &, float _Complex ), ?*=?( volatile float _Complex &, float _Complex ),
614                        ?/=?( float _Complex &, float _Complex ), ?/=?( volatile float _Complex &, float _Complex ),
615                        ?+=?( float _Complex &, float _Complex ), ?+=?( volatile float _Complex &, float _Complex ),
616                        ?-=?( float _Complex &, float _Complex ), ?-=?( volatile float _Complex &, float _Complex );
617
618double _Complex         ?=?(  double _Complex &, double _Complex ), ?=?(  volatile double _Complex &, double _Complex ),
619                        ?*=?( double _Complex &, double _Complex ), ?*=?( volatile double _Complex &, double _Complex ),
620                        ?/=?( double _Complex &, double _Complex ), ?/=?( volatile double _Complex &, double _Complex ),
621                        ?+=?( double _Complex &, double _Complex ), ?+=?( volatile double _Complex &, double _Complex ),
622                        ?-=?( double _Complex &, double _Complex ), ?-=?( volatile double _Complex &, double _Complex );
623
624long double _Complex    ?=?(  long double _Complex &, long double _Complex ), ?=?(  volatile long double _Complex &, long double _Complex ),
625                        ?*=?( long double _Complex &, long double _Complex ), ?*=?( volatile long double _Complex &, long double _Complex ),
626                        ?/=?( long double _Complex &, long double _Complex ), ?/=?( volatile long double _Complex &, long double _Complex ),
627                        ?+=?( long double _Complex &, long double _Complex ), ?+=?( volatile long double _Complex &, long double _Complex ),
628                        ?-=?( long double _Complex &, long double _Complex ), ?-=?( volatile long double _Complex &, long double _Complex );
629
630
631// ------------------------------------------------------------
632//
633// Section ??? Constructors and Destructors
634//
635// ------------------------------------------------------------
636
637// default ctor
638void    ?{}( _Bool & );
639void    ?{}( char & );
640void    ?{}( unsigned char & );
641void    ?{}( char signed & );
642void    ?{}( int short & );
643void    ?{}( int short unsigned & );
644void    ?{}( signed int & );
645void    ?{}( unsigned int & );
646void    ?{}( signed long int & );
647void    ?{}( unsigned long int & );
648void    ?{}( signed long long int & );
649void    ?{}( unsigned long long int & );
650void    ?{}( float & );
651void    ?{}( double & );
652void    ?{}( long double & );
653void    ?{}( float _Complex & );
654void    ?{}( double _Complex & );
655void    ?{}( long double _Complex & );
656void    ?{}( zero_t & );
657void    ?{}( one_t & );
658
659// copy ctor
660void    ?{}( _Bool &, _Bool );
661void    ?{}( char &, char );
662void    ?{}( unsigned char &, unsigned char );
663void    ?{}( char signed &, char signed );
664void    ?{}( int short &, int short );
665void    ?{}( int short unsigned &, int short unsigned );
666void    ?{}( signed int &, signed int);
667void    ?{}( unsigned int &, unsigned int);
668void    ?{}( signed long int &, signed long int);
669void    ?{}( unsigned long int &, unsigned long int);
670void    ?{}( signed long long int &, signed long long int);
671void    ?{}( unsigned long long int &, unsigned long long int);
672void    ?{}( float &, float);
673void    ?{}( double &, double);
674void    ?{}( long double &, long double);
675void    ?{}( float _Complex &, float _Complex);
676void    ?{}( double _Complex &, double _Complex);
677void    ?{}( long double _Complex &, long double _Complex);
678void    ?{}( zero_t &, zero_t );
679void    ?{}( one_t &, one_t );
680
681// dtor
682void    ^?{}( _Bool & );
683void    ^?{}( char & );
684void    ^?{}( char unsigned & );
685void    ^?{}( char signed & );
686void    ^?{}( int short & );
687void    ^?{}( int short unsigned & );
688void    ^?{}( signed int & );
689void    ^?{}( unsigned int & );
690void    ^?{}( signed long int & );
691void    ^?{}( unsigned long int & );
692void    ^?{}( signed long long int & );
693void    ^?{}( unsigned long long int & );
694void    ^?{}( float & );
695void    ^?{}( double & );
696void    ^?{}( long double & );
697void    ^?{}( float _Complex & );
698void    ^?{}( double _Complex & );
699void    ^?{}( long double _Complex & );
700void    ^?{}( zero_t & );
701void    ^?{}( one_t & );
702
703// // default ctor
704// forall( dtype DT ) void       ?{}(                DT ** );
705// forall( dtype DT ) void       ?{}( const          DT ** );
706// forall( dtype DT ) void       ?{}(       volatile DT ** );
707// forall( dtype DT ) void       ?{}( const volatile DT ** );
708
709// // copy ctor
710// forall( dtype DT ) void       ?{}(                DT **, DT* );
711// forall( dtype DT ) void       ?{}( const          DT **, DT* );
712// forall( dtype DT ) void       ?{}(       volatile DT **, DT* );
713// forall( dtype DT ) void       ?{}( const volatile DT **, DT* );
714
715// // dtor
716// forall( dtype DT ) void      ^?{}(                DT ** );
717// forall( dtype DT ) void      ^?{}( const          DT ** );
718// forall( dtype DT ) void      ^?{}(       volatile DT ** );
719// forall( dtype DT ) void      ^?{}( const volatile DT ** );
720
721// copied from assignment section
722// copy constructors
723forall( ftype FT ) void ?{}( FT *&, FT * );
724forall( ftype FT ) void ?{}( FT * volatile &, FT * );
725
726forall( dtype DT ) void ?{}(                 DT *          &,                   DT * );
727forall( dtype DT ) void ?{}( const           DT *          &,                   DT * );
728forall( dtype DT ) void ?{}( const           DT *          &, const             DT * );
729forall( dtype DT ) void ?{}(       volatile  DT *          &,                   DT * );
730forall( dtype DT ) void ?{}(       volatile  DT *          &,       volatile    DT * );
731
732forall( dtype DT ) void ?{}( const volatile  DT *          &,                   DT * );
733forall( dtype DT ) void ?{}( const volatile  DT *          &, const             DT * );
734forall( dtype DT ) void ?{}( const volatile  DT *          &,       volatile    DT * );
735forall( dtype DT ) void ?{}( const volatile  DT *          &, const volatile    DT * );
736
737forall( dtype DT ) void ?{}(                 void *          &,                 DT * );
738forall( dtype DT ) void ?{}( const           void *          &,                 DT * );
739forall( dtype DT ) void ?{}( const           void *          &, const           DT * );
740forall( dtype DT ) void ?{}(        volatile void *          &,                 DT * );
741forall( dtype DT ) void ?{}(        volatile void *          &,       volatile  DT * );
742forall( dtype DT ) void ?{}( const volatile void *           &,                 DT * );
743forall( dtype DT ) void ?{}( const volatile void *           &, const           DT * );
744forall( dtype DT ) void ?{}( const volatile void *           &,       volatile  DT * );
745forall( dtype DT ) void ?{}( const volatile void *           &, const volatile  DT * );
746
747//forall( dtype DT ) void ?{}(              DT *          &, zero_t );
748//forall( dtype DT ) void ?{}(              DT * volatile &, zero_t );
749forall( dtype DT ) void ?{}( const          DT *          &, zero_t );
750//forall( dtype DT ) void ?{}( volatile     DT *          &, zero_t );
751//forall( dtype DT ) void ?{}( volatile     DT * volatile &, zero_t );
752forall( dtype DT ) void ?{}( const volatile DT *          &, zero_t );
753
754forall( ftype FT ) void ?{}( FT *          &, zero_t );
755
756// default ctors
757forall( ftype FT ) void ?{}( FT *          & );
758
759forall( dtype DT ) void ?{}(                 DT *          &);
760forall( dtype DT ) void ?{}( const           DT *          &);
761forall( dtype DT ) void ?{}(       volatile  DT *          &);
762forall( dtype DT ) void ?{}( const volatile  DT *          &);
763
764void    ?{}(                void *          &);
765void    ?{}( const          void *          &);
766void    ?{}(       volatile void *          &);
767void    ?{}( const volatile void *          &);
768
769// dtors
770forall( ftype FT ) void ^?{}( FT *         & );
771
772forall( dtype DT ) void ^?{}(                DT *          &);
773forall( dtype DT ) void ^?{}( const          DT *          &);
774forall( dtype DT ) void ^?{}(      volatile  DT *          &);
775forall( dtype DT ) void ^?{}( const volatile  DT *         &);
776
777void ^?{}(                  void *          &);
778void ^?{}( const            void *          &);
779void ^?{}(         volatile void *          &);
780void ^?{}( const   volatile void *          &);
781
782// Local Variables: //
783// mode: c //
784// tab-width: 8 //
785// End: //
Note: See TracBrowser for help on using the repository browser.