source: src/prelude/prelude.cf @ 66f8528

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

Merge branch 'master' into tuples

Conflicts:

src/ResolvExpr/CommonType.cc
src/tests/.expect/32/extension.txt
src/tests/.expect/32/gccExtensions.txt
src/tests/.expect/64/declarationSpecifier.txt
src/tests/.expect/64/extension.txt
src/tests/.expect/64/gccExtensions.txt
src/tests/.expect/castError.txt
src/tests/Makefile.am

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