source: src/prelude/prelude.cf @ 5809461

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 5809461 was fbcb354, checked in by Rob Schluntz <rschlunt@…>, 7 years ago

Merge branch 'master' of plg.uwaterloo.ca:/u/cforall/software/cfa/cfa-cc

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