source: src/prelude/prelude.cf @ 8053d2c

aaron-thesisarm-ehcleanup-dtorsdeferred_resndemanglerjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerresolv-newwith_gc
Last change on this file since 8053d2c was 8053d2c, checked in by Peter A. Buhr <pabuhr@…>, 4 years ago

formatting

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