source: src/prelude/prelude.cf @ ff39851

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

Remove unsafe void * constructors and assignment operators from prelude [closes #24] [fixes #51]

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