source: src/prelude/prelude.cf @ 827a190

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsdeferred_resndemanglerenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newwith_gc
Last change on this file since 827a190 was 42be3c3, checked in by Thierry Delisle <tdelisle@…>, 7 years ago

Removed extraneous arithmetic operations on booleans

  • 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 : Sat Oct 28 16:33:09 2017
10// Update Count     : 102
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 );
460zero_t                  ?=?( zero_t &, zero_t );
461one_t                   ?=?( one_t &, one_t );
462
463
464char                    ?*=?( char &, char ),                                   ?*=?( volatile char &, char );
465char signed             ?*=?( char signed &, char signed ),                     ?*=?( volatile char signed &, char signed );
466char unsigned           ?*=?( char unsigned &, char unsigned ),                 ?*=?( volatile char unsigned &, char unsigned );
467int short               ?*=?( int short &, int short ),                         ?*=?( volatile int short &, int short );
468int short unsigned      ?*=?( int short unsigned &, int short unsigned ),       ?*=?( volatile int short unsigned &, int short unsigned );
469signed int              ?*=?( signed int &, signed int ),                       ?*=?( volatile signed int &, signed int );
470unsigned int            ?*=?( unsigned &, unsigned ),                           ?*=?( volatile unsigned &, unsigned );
471signed long int         ?*=?( signed long int &, signed long int ),             ?*=?( volatile signed long int &, signed long int );
472unsigned long int       ?*=?( unsigned long int &, unsigned long int ),         ?*=?( volatile unsigned long int &, unsigned long int );
473signed long long int    ?*=?( signed long long int &, signed long long int ),   ?*=?( volatile signed long long int &, signed long long int );
474unsigned long long int  ?*=?( unsigned long long int &, unsigned long long int ), ?*=?( volatile unsigned long long int &, unsigned long long int );
475
476_Bool                   ?/=?( _Bool &, _Bool ),                                 ?/=?( volatile _Bool &, _Bool );
477char                    ?/=?( char &, char ),                                   ?/=?( volatile char &, char );
478char signed             ?/=?( char signed &, char signed ),                     ?/=?( volatile char signed &, char signed );
479char unsigned           ?/=?( char unsigned &, char unsigned ),                 ?/=?( volatile char unsigned &, char unsigned );
480int short               ?/=?( int short &, int short ),                         ?/=?( volatile int short &, int short );
481int short unsigned      ?/=?( int short unsigned &, int short unsigned ),       ?/=?( volatile int short unsigned &, int short unsigned );
482signed int              ?/=?( signed int &, signed int ),                       ?/=?( volatile signed int &, signed int );
483unsigned int            ?/=?( unsigned &, unsigned ),                           ?/=?( volatile unsigned &, unsigned );
484signed long int         ?/=?( signed long int &, signed long int ),             ?/=?( volatile signed long int &, signed long int );
485unsigned long int       ?/=?( unsigned long int &, unsigned long int ),         ?/=?( volatile unsigned long int &, unsigned long int );
486signed long long int    ?/=?( signed long long int &, signed long long int ),   ?/=?( volatile signed long long int &, signed long long int );
487unsigned long long int  ?/=?( unsigned long long int &, unsigned long long int ), ?/=?( volatile unsigned long long int &, unsigned long long int );
488
489_Bool                   ?%=?( _Bool &, _Bool ),                                 ?%=?( volatile _Bool &, _Bool );
490char                    ?%=?( char &, char ),                                   ?%=?( volatile char &, char );
491char signed             ?%=?( char signed &, char signed ),                     ?%=?( volatile char signed &, char signed );
492char unsigned           ?%=?( char unsigned &, char unsigned ),                 ?%=?( volatile char unsigned &, char unsigned );
493int short               ?%=?( int short &, int short ),                         ?%=?( volatile int short &, int short );
494int short unsigned      ?%=?( int short unsigned &, int short unsigned ),       ?%=?( volatile int short unsigned &, int short unsigned );
495signed int              ?%=?( signed int &, signed int ),                       ?%=?( volatile signed int &, signed int );
496unsigned int            ?%=?( unsigned &, unsigned ),                           ?%=?( volatile unsigned &, unsigned );
497signed long int         ?%=?( signed long int &, signed long int ),             ?%=?( volatile signed long int &, signed long int );
498unsigned long int       ?%=?( unsigned long int &, unsigned long int ),         ?%=?( volatile unsigned long int &, unsigned long int );
499signed long long int    ?%=?( signed long long int &, signed long long int ),   ?%=?( volatile signed long long int &, signed long long int );
500unsigned long long int  ?%=?( unsigned long long int &, unsigned long long int ), ?%=?( volatile unsigned long long int &, unsigned long long int );
501
502_Bool                   ?+=?( _Bool &, _Bool ),                                 ?+=?( volatile _Bool &, _Bool );
503char                    ?+=?( char &, char ),                                   ?+=?( volatile char &, char );
504char signed             ?+=?( char signed &, char signed ),                     ?+=?( volatile char signed &, char signed );
505char unsigned           ?+=?( char unsigned &, char unsigned ),                 ?+=?( volatile char unsigned &, char unsigned );
506int short               ?+=?( int short &, int short ),                         ?+=?( volatile int short &, int short );
507int short unsigned      ?+=?( int short unsigned &, int short unsigned ),       ?+=?( volatile int short unsigned &, int short unsigned );
508signed int              ?+=?( signed int &, signed int ),                       ?+=?( volatile signed int &, signed int );
509unsigned int            ?+=?( unsigned &, unsigned ),                           ?+=?( volatile unsigned &, unsigned );
510signed long int         ?+=?( signed long int &, signed long int ),             ?+=?( volatile signed long int &, signed long int );
511unsigned long int       ?+=?( unsigned long int &, unsigned long int ),         ?+=?( volatile unsigned long int &, unsigned long int );
512signed long long int    ?+=?( signed long long int &, signed long long int ),   ?+=?( volatile signed long long int &, signed long long int );
513unsigned long long int  ?+=?( unsigned long long int &, unsigned long long int ), ?+=?( volatile unsigned long long int &, unsigned long long int );
514//signed int128         ?+=?( signed int128 &, signed int128 ),                 ?+=?( volatile signed int128 &, signed int128 );
515//unsigned int128               ?+=?( unsigned int128 &, unsigned int128 ),             ?+=?( volatile unsigned int128 &, unsigned int128 );
516
517_Bool                   ?-=?( _Bool &, _Bool ),                                 ?-=?( volatile _Bool &, _Bool );
518char                    ?-=?( char &, char ),                                   ?-=?( volatile char &, char );
519char signed             ?-=?( char signed &, char signed ),                     ?-=?( volatile char signed &, char signed );
520char unsigned           ?-=?( char unsigned &, char unsigned ),                 ?-=?( volatile char unsigned &, char unsigned );
521int short               ?-=?( int short &, int short ),                         ?-=?( volatile int short &, int short );
522int short unsigned      ?-=?( int short unsigned &, int short unsigned ),       ?-=?( volatile int short unsigned &, int short unsigned );
523signed int              ?-=?( signed int &, signed int ),                       ?-=?( volatile signed int &, signed int );
524unsigned int            ?-=?( unsigned &, unsigned ),                           ?-=?( volatile unsigned &, unsigned );
525signed long int         ?-=?( signed long int &, signed long int ),             ?-=?( volatile signed long int &, signed long int );
526unsigned long int       ?-=?( unsigned long int &, unsigned long int ),         ?-=?( volatile unsigned long int &, unsigned long int );
527signed long long int    ?-=?( signed long long int &, signed long long int ),   ?-=?( volatile signed long long int &, signed long long int );
528unsigned long long int  ?-=?( unsigned long long int &, unsigned long long int ), ?-=?( volatile unsigned long long int &, unsigned long long int );
529
530char                    ?<<=?( char &, char ),                                  ?<<=?( volatile char &, char );
531char signed             ?<<=?( char signed &, char signed ),                    ?<<=?( volatile char signed &, char signed );
532char unsigned           ?<<=?( char unsigned &, char unsigned ),                ?<<=?( volatile char unsigned &, char unsigned );
533int short               ?<<=?( int short &, int short ),                        ?<<=?( volatile int short &, int short );
534int short unsigned      ?<<=?( int short unsigned &, int short unsigned ),      ?<<=?( volatile int short unsigned &, int short unsigned );
535signed int              ?<<=?( signed int &, signed int ),                      ?<<=?( volatile signed int &, signed int );
536unsigned int            ?<<=?( unsigned &, unsigned ),                          ?<<=?( volatile unsigned &, unsigned );
537signed long int         ?<<=?( signed long int &, signed long int ),            ?<<=?( volatile signed long int &, signed long int );
538unsigned long int       ?<<=?( unsigned long int &, unsigned long int ),        ?<<=?( volatile unsigned long int &, unsigned long int );
539signed long long int    ?<<=?( signed long long int &, signed long long int ),  ?<<=?( volatile signed long long int &, signed long long int );
540unsigned long long int  ?<<=?( unsigned long long int &, unsigned long long int ), ?<<=?( volatile unsigned long long int &, unsigned long long int );
541
542char                    ?>>=?( char &, char ),                                  ?>>=?( volatile char &, char );
543char signed             ?>>=?( char signed &, char signed ),                    ?>>=?( volatile char signed &, char signed );
544char unsigned           ?>>=?( char unsigned &, char unsigned ),                ?>>=?( volatile char unsigned &, char unsigned );
545int short               ?>>=?( int short &, int short ),                        ?>>=?( volatile int short &, int short );
546int short unsigned      ?>>=?( int short unsigned &, int short unsigned ),      ?>>=?( volatile int short unsigned &, int short unsigned );
547signed int              ?>>=?( signed int &, signed int ),                      ?>>=?( volatile signed int &, signed int );
548unsigned int            ?>>=?( unsigned &, unsigned ),                          ?>>=?( volatile unsigned &, unsigned );
549signed long int         ?>>=?( signed long int &, signed long int ),            ?>>=?( volatile signed long int &, signed long int );
550unsigned long int       ?>>=?( unsigned long int &, unsigned long int ),        ?>>=?( volatile unsigned long int &, unsigned long int );
551signed long long int    ?>>=?( signed long long int &, signed long long int ),  ?>>=?( volatile signed long long int &, signed long long int );
552unsigned long long int  ?>>=?( unsigned long long int &, unsigned long long int ), ?>>=?( volatile unsigned long long int &, unsigned long long int );
553
554_Bool                   ?&=?( _Bool &, _Bool ),                                 ?&=?( volatile _Bool &, _Bool );
555char                    ?&=?( char &, char ),                                   ?&=?( volatile char &, char );
556char signed             ?&=?( char signed &, char signed ),                     ?&=?( volatile char signed &, char signed );
557char unsigned           ?&=?( char unsigned &, char unsigned ),                 ?&=?( volatile char unsigned &, char unsigned );
558int short               ?&=?( int short &, int short ),                         ?&=?( volatile int short &, int short );
559int short unsigned      ?&=?( int short unsigned &, int short unsigned ),       ?&=?( volatile int short unsigned &, int short unsigned );
560signed int              ?&=?( signed int &, signed int ),                       ?&=?( volatile signed int &, signed int );
561unsigned int            ?&=?( unsigned &, unsigned ),                           ?&=?( volatile unsigned &, unsigned );
562signed long int         ?&=?( signed long int &, signed long int ),             ?&=?( volatile signed long int &, signed long int );
563unsigned long int       ?&=?( unsigned long int &, unsigned long int ),         ?&=?( volatile unsigned long int &, unsigned long int );
564signed long long int    ?&=?( signed long long int &, signed long long int ),   ?&=?( volatile signed long long int &, signed long long int );
565unsigned long long int  ?&=?( unsigned long long int &, unsigned long long int ), ?&=?( volatile unsigned long long int &, unsigned long long int );
566
567_Bool                   ?|=?( _Bool &, _Bool ),                                 ?|=?( volatile _Bool &, _Bool );
568char                    ?|=?( char &, char ),                                   ?|=?( volatile char &, char );
569char signed             ?|=?( char signed &, char signed ),                     ?|=?( volatile char signed &, char signed );
570char unsigned           ?|=?( char unsigned &, char unsigned ),                 ?|=?( volatile char unsigned &, char unsigned );
571int short               ?|=?( int short &, int short ),                         ?|=?( volatile int short &, int short );
572int short unsigned      ?|=?( int short unsigned &, int short unsigned ),       ?|=?( volatile int short unsigned &, int short unsigned );
573signed int              ?|=?( signed int &, signed int ),                       ?|=?( volatile signed int &, signed int );
574unsigned int            ?|=?( unsigned &, unsigned ),                           ?|=?( volatile unsigned &, unsigned );
575signed long int         ?|=?( signed long int &, signed long int ),             ?|=?( volatile signed long int &, signed long int );
576unsigned long int       ?|=?( unsigned long int &, unsigned long int ),         ?|=?( volatile unsigned long int &, unsigned long int );
577signed long long int    ?|=?( signed long long int &, signed long long int ),   ?|=?( volatile signed long long int &, signed long long int );
578unsigned long long int  ?|=?( unsigned long long int &, unsigned long long int ), ?|=?( volatile unsigned long long int &, unsigned long long int );
579
580_Bool                   ?^=?( _Bool &, _Bool ),                                 ?^=?( volatile _Bool &, _Bool );
581char                    ?^=?( char &, char ),                                   ?^=?( volatile char &, char );
582char signed             ?^=?( char signed &, char signed ),                     ?^=?( volatile char signed &, char signed );
583char unsigned           ?^=?( char unsigned &, char unsigned ),                 ?^=?( volatile char unsigned &, char unsigned );
584int short               ?^=?( int short &, int short ),                         ?^=?( volatile int short &, int short );
585int short unsigned      ?^=?( int short unsigned &, int short unsigned ),       ?^=?( volatile int short unsigned &, int short unsigned );
586signed int              ?^=?( signed int &, signed int ),                       ?^=?( volatile signed int &, signed int );
587unsigned int            ?^=?( unsigned &, unsigned ),                           ?^=?( volatile unsigned &, unsigned );
588signed long int         ?^=?( signed long int &, signed long int ),             ?^=?( volatile signed long int &, signed long int );
589unsigned long int       ?^=?( unsigned long int &, unsigned long int ),         ?^=?( volatile unsigned long int &, unsigned long int );
590signed long long int    ?^=?( signed long long int &, signed long long int ),   ?^=?( volatile signed long long int &, signed long long int );
591unsigned long long int  ?^=?( unsigned long long int &, unsigned long long int ), ?^=?( volatile unsigned long long int &, unsigned long long int );
592
593float                   ?=?(  float &, float ), ?=?(  volatile float &, float ),
594                        ?*=?( float &, float ), ?*=?( volatile float &, float ),
595                        ?/=?( float &, float ), ?/=?( volatile float &, float ),
596                        ?+=?( float &, float ), ?+=?( volatile float &, float ),
597                        ?-=?( float &, float ), ?-=?( volatile float &, float );
598
599double                  ?=?(  double &, double ), ?=?(  volatile double &, double ),
600                        ?*=?( double &, double ), ?*=?( volatile double &, double ),
601                        ?/=?( double &, double ), ?/=?( volatile double &, double ),
602                        ?+=?( double &, double ), ?+=?( volatile double &, double ),
603                        ?-=?( double &, double ), ?-=?( volatile double &, double );
604
605long double             ?=?(  long double &, long double ), ?=?(  volatile long double &, long double ),
606                        ?*=?( 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
611float _Complex          ?=?(  float _Complex &, float _Complex ), ?=?(  volatile float _Complex &, float _Complex ),
612                        ?*=?( 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
617double _Complex         ?=?(  double _Complex &, double _Complex ), ?=?(  volatile double _Complex &, double _Complex ),
618                        ?*=?( 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
623long double _Complex    ?=?(  long double _Complex &, long double _Complex ), ?=?(  volatile long double _Complex &, long double _Complex ),
624                        ?*=?( 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
629
630// ------------------------------------------------------------
631//
632// Section ??? Constructors and Destructors
633//
634// ------------------------------------------------------------
635
636// default ctor
637void    ?{}( _Bool & );
638void    ?{}( char & );
639void    ?{}( unsigned char & );
640void    ?{}( char signed & );
641void    ?{}( int short & );
642void    ?{}( int short unsigned & );
643void    ?{}( signed int & );
644void    ?{}( unsigned int & );
645void    ?{}( signed long int & );
646void    ?{}( unsigned long int & );
647void    ?{}( signed long long int & );
648void    ?{}( unsigned long long int & );
649void    ?{}( float & );
650void    ?{}( double & );
651void    ?{}( long double & );
652void    ?{}( float _Complex & );
653void    ?{}( double _Complex & );
654void    ?{}( long double _Complex & );
655void    ?{}( zero_t & );
656void    ?{}( one_t & );
657
658// copy ctor
659void    ?{}( _Bool &, _Bool );
660void    ?{}( char &, char );
661void    ?{}( unsigned char &, unsigned char );
662void    ?{}( char signed &, char signed );
663void    ?{}( int short &, int short );
664void    ?{}( int short unsigned &, int short unsigned );
665void    ?{}( signed int &, signed int);
666void    ?{}( unsigned int &, unsigned int);
667void    ?{}( signed long int &, signed long int);
668void    ?{}( unsigned long int &, unsigned long int);
669void    ?{}( signed long long int &, signed long long int);
670void    ?{}( unsigned long long int &, unsigned long long int);
671void    ?{}( float &, float);
672void    ?{}( double &, double);
673void    ?{}( long double &, long double);
674void    ?{}( float _Complex &, float _Complex);
675void    ?{}( double _Complex &, double _Complex);
676void    ?{}( long double _Complex &, long double _Complex);
677void    ?{}( zero_t &, zero_t );
678void    ?{}( one_t &, one_t );
679
680// dtor
681void    ^?{}( _Bool & );
682void    ^?{}( char & );
683void    ^?{}( char unsigned & );
684void    ^?{}( char signed & );
685void    ^?{}( int short & );
686void    ^?{}( int short unsigned & );
687void    ^?{}( signed int & );
688void    ^?{}( unsigned int & );
689void    ^?{}( signed long int & );
690void    ^?{}( unsigned long int & );
691void    ^?{}( signed long long int & );
692void    ^?{}( unsigned long long int & );
693void    ^?{}( float & );
694void    ^?{}( double & );
695void    ^?{}( long double & );
696void    ^?{}( float _Complex & );
697void    ^?{}( double _Complex & );
698void    ^?{}( long double _Complex & );
699void    ^?{}( zero_t & );
700void    ^?{}( one_t & );
701
702// // default ctor
703// forall( dtype DT ) void       ?{}(                DT ** );
704// forall( dtype DT ) void       ?{}( const          DT ** );
705// forall( dtype DT ) void       ?{}(       volatile DT ** );
706// forall( dtype DT ) void       ?{}( const volatile DT ** );
707
708// // copy ctor
709// forall( dtype DT ) void       ?{}(                DT **, DT* );
710// forall( dtype DT ) void       ?{}( const          DT **, DT* );
711// forall( dtype DT ) void       ?{}(       volatile DT **, DT* );
712// forall( dtype DT ) void       ?{}( const volatile DT **, DT* );
713
714// // dtor
715// forall( dtype DT ) void      ^?{}(                DT ** );
716// forall( dtype DT ) void      ^?{}( const          DT ** );
717// forall( dtype DT ) void      ^?{}(       volatile DT ** );
718// forall( dtype DT ) void      ^?{}( const volatile DT ** );
719
720// copied from assignment section
721// copy constructors
722forall( ftype FT ) void ?{}( FT *&, FT * );
723forall( ftype FT ) void ?{}( FT * volatile &, FT * );
724
725forall( dtype DT ) void ?{}(                 DT *          &,                   DT * );
726forall( dtype DT ) void ?{}( const           DT *          &,                   DT * );
727forall( dtype DT ) void ?{}( const           DT *          &, const             DT * );
728forall( dtype DT ) void ?{}(       volatile  DT *          &,                   DT * );
729forall( dtype DT ) void ?{}(       volatile  DT *          &,       volatile    DT * );
730
731forall( dtype DT ) void ?{}( const volatile  DT *          &,                   DT * );
732forall( dtype DT ) void ?{}( const volatile  DT *          &, const             DT * );
733forall( dtype DT ) void ?{}( const volatile  DT *          &,       volatile    DT * );
734forall( dtype DT ) void ?{}( const volatile  DT *          &, const volatile    DT * );
735
736forall( dtype DT ) void ?{}(                 void *          &,                 DT * );
737forall( dtype DT ) void ?{}( const           void *          &,                 DT * );
738forall( dtype DT ) void ?{}( const           void *          &, const           DT * );
739forall( dtype DT ) void ?{}(        volatile void *          &,                 DT * );
740forall( dtype DT ) void ?{}(        volatile void *          &,       volatile  DT * );
741forall( dtype DT ) void ?{}( const volatile void *           &,                 DT * );
742forall( dtype DT ) void ?{}( const volatile void *           &, const           DT * );
743forall( dtype DT ) void ?{}( const volatile void *           &,       volatile  DT * );
744forall( dtype DT ) void ?{}( const volatile void *           &, const volatile  DT * );
745
746//forall( dtype DT ) void ?{}(              DT *          &, zero_t );
747//forall( dtype DT ) void ?{}(              DT * volatile &, zero_t );
748forall( dtype DT ) void ?{}( const          DT *          &, zero_t );
749//forall( dtype DT ) void ?{}( volatile     DT *          &, zero_t );
750//forall( dtype DT ) void ?{}( volatile     DT * volatile &, zero_t );
751forall( dtype DT ) void ?{}( const volatile DT *          &, zero_t );
752
753forall( ftype FT ) void ?{}( FT *          &, zero_t );
754
755// default ctors
756forall( ftype FT ) void ?{}( FT *          & );
757
758forall( dtype DT ) void ?{}(                 DT *          &);
759forall( dtype DT ) void ?{}( const           DT *          &);
760forall( dtype DT ) void ?{}(       volatile  DT *          &);
761forall( dtype DT ) void ?{}( const volatile  DT *          &);
762
763void    ?{}(                void *          &);
764void    ?{}( const          void *          &);
765void    ?{}(       volatile void *          &);
766void    ?{}( const volatile void *          &);
767
768// dtors
769forall( ftype FT ) void ^?{}( FT *         & );
770
771forall( dtype DT ) void ^?{}(                DT *          &);
772forall( dtype DT ) void ^?{}( const          DT *          &);
773forall( dtype DT ) void ^?{}(      volatile  DT *          &);
774forall( dtype DT ) void ^?{}( const volatile  DT *         &);
775
776void ^?{}(                  void *          &);
777void ^?{}( const            void *          &);
778void ^?{}(         volatile void *          &);
779void ^?{}( const   volatile void *          &);
780
781// Local Variables: //
782// mode: c //
783// tab-width: 8 //
784// End: //
Note: See TracBrowser for help on using the repository browser.