source: src/prelude/prelude.cf @ be9036d

aaron-thesisarm-ehcleanup-dtorsdeferred_resndemanglerenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newwith_gc
Last change on this file since be9036d was be9036d, checked in by Rob Schluntz <rschlunt@…>, 5 years ago

Reorganize TraitInstType? and TraitDecl?, add sized trait definition to prelude

Previously, TraitInstType? cloned all of the members of TraitDecl?. This commit changes
TraitInstType? to instead contain a pointer to the base TraitDecl?, analogous to StructInstType?
and StructDecl?, etc. In particular, this makes the code simpler and makes it easier to
fully expand the members of a trait declaration.

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