source: src/prelude/prelude.cf @ 201aeb9

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

first attempt at new basic-type int128, and length suffix with explicit size

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