source: src/prelude/prelude.cf @ e5fccf4

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 e5fccf4 was e5fccf4, checked in by Peter A. Buhr <pabuhr@…>, 7 years ago

remove redundant Mode in header comments

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