Changeset 469f709


Ignore:
Timestamp:
Jul 12, 2017, 4:36:09 PM (4 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, demangler, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, resolv-new, with_gc
Children:
aca65621
Parents:
5805d15
Message:

update prelude to use references as appropriate

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/prelude/prelude.cf

    r5805d15 r469f709  
    3030// ------------------------------------------------------------
    3131
    32 _Bool                   ?++( _Bool * ),                         ?++( volatile _Bool * );
    33 _Bool                   ?--( _Bool * ),                         ?--( volatile _Bool * );
    34 unsigned char           ?++( unsigned char * ),                 ?++( volatile unsigned char * );
    35 signed int              ?++( signed int * ),                    ?++( volatile signed int * );
    36 signed int              ?--( signed int * ),                    ?--( volatile signed int * );
    37 unsigned int            ?++( unsigned int * ),                  ?++( volatile unsigned int * );
    38 unsigned int            ?--( unsigned int * ),                  ?--( volatile unsigned int * );
    39 signed long int         ?++( signed long int * ),               ?++( volatile signed long int * );
    40 signed long int         ?--( signed long int * ),               ?--( volatile signed long int * );
    41 unsigned long int       ?++( unsigned long int * ),             ?++( volatile unsigned long int * );
    42 unsigned long int       ?--( unsigned long int * ),             ?--( volatile unsigned long int * );
    43 signed long long int    ?++( signed long long int * ),          ?++( volatile signed long long int * );
    44 signed long long int    ?--( signed long long int * ),          ?--( volatile signed long long int * );
    45 unsigned long long int  ?++( unsigned long long int * ),        ?++( volatile unsigned long long int * );
    46 unsigned long long int  ?--( unsigned long long int * ),        ?--( volatile unsigned long long int * );
    47 float                   ?++( float * ),                         ?++( volatile float * );
    48 float                   ?--( float * ),                         ?--( volatile float * );
    49 double                  ?++( double * ),                        ?++( volatile double * );
    50 double                  ?--( double * ),                        ?--( volatile double * );
    51 long double             ?++( long double * ),                   ?++( volatile long double * );
    52 long double             ?--( long double * ),                   ?--( volatile long double * );
    53 float _Complex          ?++( float _Complex * ),                ?++( volatile float _Complex * );
    54 float _Complex          ?--( float _Complex * ),                ?--( volatile float _Complex * );
    55 double _Complex         ?++( double _Complex * ),               ?++( volatile double _Complex * );
    56 double _Complex         ?--( double _Complex * ),               ?--( volatile double _Complex * );
    57 long double _Complex    ?++( long double _Complex * ),          ?++( volatile long double _Complex * );
    58 long double _Complex    ?--( long double _Complex * ),          ?--( volatile long double _Complex * );
    59 
    60 forall( dtype T | sized(T) ) T *                         ?++(                T ** );
    61 forall( dtype T | sized(T) ) const T *           ?++( const          T ** );
    62 forall( dtype T | sized(T) ) volatile T *                ?++(       volatile T ** );
    63 forall( dtype T | sized(T) ) const volatile T *  ?++( const volatile T ** );
    64 forall( dtype T | sized(T) ) T *                         ?--(                T ** );
    65 forall( dtype T | sized(T) ) const T *           ?--( const          T ** );
    66 forall( dtype T | sized(T) ) volatile T *                ?--(       volatile T ** );
    67 forall( dtype T | sized(T) ) const volatile T *  ?--( const volatile T ** );
    68 
    69 forall( dtype T | sized(T) ) lvalue T            ?[?](                T *,          ptrdiff_t );
    70 forall( dtype T | sized(T) ) const lvalue T      ?[?]( const          T *,          ptrdiff_t );
    71 forall( dtype T | sized(T) ) volatile lvalue T   ?[?](       volatile T *,          ptrdiff_t );
    72 forall( dtype T | sized(T) ) const volatile lvalue T ?[?]( const volatile T *,      ptrdiff_t );
    73 forall( dtype T | sized(T) ) lvalue T            ?[?](          ptrdiff_t,                T * );
    74 forall( dtype T | sized(T) ) const lvalue T      ?[?](          ptrdiff_t, const          T * );
    75 forall( dtype T | sized(T) ) volatile lvalue T   ?[?](          ptrdiff_t,       volatile T * );
    76 forall( dtype T | sized(T) ) const volatile lvalue T ?[?](              ptrdiff_t, const volatile T * );
     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( dtype T | sized(T) ) T *                         ?++(                T *& );
     61forall( dtype T | sized(T) ) const T *           ?++( const          T *& );
     62forall( dtype T | sized(T) ) volatile T *                ?++(       volatile T *& );
     63forall( dtype T | sized(T) ) const volatile T *  ?++( const volatile T *& );
     64forall( dtype T | sized(T) ) T *                         ?--(                T *& );
     65forall( dtype T | sized(T) ) const T *           ?--( const          T *& );
     66forall( dtype T | sized(T) ) volatile T *                ?--(       volatile T *& );
     67forall( dtype T | sized(T) ) const volatile T *  ?--( const volatile T *& );
     68
     69forall( dtype T | sized(T) ) T &                 ?[?](                T *,          ptrdiff_t );
     70forall( dtype T | sized(T) ) const T &   ?[?]( const          T *,          ptrdiff_t );
     71forall( dtype T | sized(T) ) volatile T &        ?[?](       volatile T *,          ptrdiff_t );
     72forall( dtype T | sized(T) ) const volatile T & ?[?]( const volatile T *,           ptrdiff_t );
     73forall( dtype T | sized(T) ) T &                 ?[?](          ptrdiff_t,                T * );
     74forall( dtype T | sized(T) ) const T &   ?[?](          ptrdiff_t, const          T * );
     75forall( dtype T | sized(T) ) volatile T &        ?[?](          ptrdiff_t,       volatile T * );
     76forall( dtype T | sized(T) ) const volatile T & ?[?](           ptrdiff_t, const volatile T * );
    7777
    7878// ------------------------------------------------------------
     
    8282// ------------------------------------------------------------
    8383
    84 _Bool                   ++?( _Bool * ),                         --?( _Bool * );
    85 signed int              ++?( signed int * ),                    --?( signed int * );
    86 unsigned int            ++?( unsigned int * ),                  --?( unsigned int * );
    87 signed long int         ++?( signed long int * ),               --?( signed long int * );
    88 unsigned long int       ++?( unsigned long int * ),             --?( unsigned long int * );
    89 signed long long int    ++?( signed long long int * ),          --?( signed long long int * );
    90 unsigned long long int  ++?( unsigned long long int * ),        --?( unsigned long long int * );
    91 float                   ++?( float * ),                         --?( float * );
    92 double                  ++?( double * ),                        --?( double * );
    93 long double             ++?( long double * ),                   --?( long double * );
    94 float _Complex          ++?( float _Complex * ),                --?( float _Complex * );
    95 double _Complex         ++?( double _Complex * ),               --?( double _Complex * );
    96 long double _Complex    ++?( long double _Complex * ),          --?( long double _Complex * );
    97 
    98 forall( dtype T | sized(T) ) T *                         ++?(                T ** );
    99 forall( dtype T | sized(T) ) const T *           ++?( const          T ** );
    100 forall( dtype T | sized(T) ) volatile T *                ++?(       volatile T ** );
    101 forall( dtype T | sized(T) ) const volatile T *  ++?( const volatile T ** );
    102 forall( dtype T | sized(T) ) T *                         --?(                T ** );
    103 forall( dtype T | sized(T) ) const T *           --?( const          T ** );
    104 forall( dtype T | sized(T) ) volatile T *                --?(       volatile T ** );
    105 forall( dtype T | sized(T) ) const volatile T *  --?( const volatile T ** );
    106 
    107 forall( dtype T | sized(T) ) lvalue T            *?(                 T * );
    108 forall( dtype T | sized(T) ) const lvalue T              *?( const           T * );
    109 forall( dtype T | sized(T) ) volatile lvalue T   *?(       volatile  T * );
    110 forall( dtype T | sized(T) ) const volatile lvalue T *?( const volatile  T * );
    111 forall( ftype FT ) lvalue FT             *?( FT * );
     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( dtype T | sized(T) ) T *                         ++?(                T *& );
     99forall( dtype T | sized(T) ) const T *           ++?( const          T *& );
     100forall( dtype T | sized(T) ) volatile T *                ++?(       volatile T *& );
     101forall( dtype T | sized(T) ) const volatile T *  ++?( const volatile T *& );
     102forall( dtype T | sized(T) ) T *                         --?(                T *& );
     103forall( dtype T | sized(T) ) const T *           --?( const          T *& );
     104forall( dtype T | sized(T) ) volatile T *                --?(       volatile T *& );
     105forall( dtype T | sized(T) ) const volatile T *  --?( const volatile T *& );
     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( ftype FT ) FT &          *?( FT * );
    112112
    113113_Bool                   +?( _Bool ),                    -?( _Bool ),                    ~?( _Bool );
     
    366366// ------------------------------------------------------------
    367367
    368 forall( ftype FT ) FT *                 ?=?( FT **, FT * );
    369 forall( ftype FT ) FT *                 ?=?( FT * volatile *, FT * );
    370 
    371 forall( dtype DT ) DT *                 ?=?(                 DT *          *,                   DT * );
    372 forall( dtype DT ) DT *                 ?=?(                 DT * volatile *,                   DT * );
    373 forall( dtype DT ) const DT *           ?=?( const           DT *          *,                   DT * );
    374 forall( dtype DT ) const DT *           ?=?( const           DT * volatile *,                   DT * );
    375 forall( dtype DT ) const DT *           ?=?( const           DT *          *, const             DT * );
    376 forall( dtype DT ) const DT *           ?=?( const           DT * volatile *, const             DT * );
    377 forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          *,                   DT * );
    378 forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile *,                   DT * );
    379 forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          *,       volatile    DT * );
    380 forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile *,       volatile    DT * );
    381 
    382 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          *,                   DT * );
    383 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *,                   DT * );
    384 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          *, const             DT * );
    385 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *, const             DT * );
    386 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          *,       volatile    DT * );
    387 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *,       volatile    DT * );
    388 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          *, const volatile    DT * );
    389 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *, const volatile    DT * );
    390 
    391 forall( dtype DT ) DT *                 ?=?(                 DT *          *,                   void * );
    392 forall( dtype DT ) DT *                 ?=?(                 DT * volatile *,                   void * );
    393 forall( dtype DT ) const DT *           ?=?( const           DT *          *,                   void * );
    394 forall( dtype DT ) const DT *           ?=?( const           DT * volatile *,                   void * );
    395 forall( dtype DT ) const DT *           ?=?( const           DT *          *, const             void * );
    396 forall( dtype DT ) const DT *           ?=?( const           DT * volatile *, const             void * );
    397 forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          *,                   void * );
    398 forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile *,                   void * );
    399 forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          *,       volatile    void * );
    400 forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile *,       volatile    void * );
    401 
    402 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          *,                   void * );
    403 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *,                   void * );
    404 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          *, const             void * );
    405 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *, const             void * );
    406 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          *,       volatile    void * );
    407 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *,       volatile    void * );
    408 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          *, const volatile    void * );
    409 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *, const volatile    void * );
    410 
    411 forall( dtype DT ) void *                ?=?(                void *          *,                 DT * );
    412 forall( dtype DT ) void *                ?=?(                void * volatile *,                 DT * );
    413 forall( dtype DT ) const void *          ?=?( const          void *          *,                 DT * );
    414 forall( dtype DT ) const void *          ?=?( const          void * volatile *,                 DT * );
    415 forall( dtype DT ) const void *          ?=?( const          void *          *, const           DT * );
    416 forall( dtype DT ) const void *          ?=?( const          void * volatile *, const           DT * );
    417 forall( dtype DT ) volatile void *       ?=?(       volatile void *          *,                 DT * );
    418 forall( dtype DT ) volatile void *       ?=?(       volatile void * volatile *,                 DT * );
    419 forall( dtype DT ) volatile void *       ?=?(       volatile void *          *,       volatile  DT * );
    420 forall( dtype DT ) volatile void *       ?=?(       volatile void * volatile *,       volatile  DT * );
    421 forall( dtype DT ) const volatile void * ?=?( const volatile void *          *,                 DT * );
    422 forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile *,                 DT * );
    423 forall( dtype DT ) const volatile void * ?=?( const volatile void *          *, const           DT * );
    424 forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile *, const           DT * );
    425 forall( dtype DT ) const volatile void * ?=?( const volatile void *          *,       volatile  DT * );
    426 forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile *,       volatile  DT * );
    427 forall( dtype DT ) const volatile void * ?=?( const volatile void *          *, const volatile  DT * );
    428 forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile *, const volatile  DT * );
    429 
    430 void *                  ?=?(                void *          *,                void * );
    431 void *                  ?=?(                void * volatile *,                void * );
    432 const void *            ?=?( const          void *          *,                void * );
    433 const void *            ?=?( const          void * volatile *,                void * );
    434 const void *            ?=?( const          void *          *, const          void * );
    435 const void *            ?=?( const          void * volatile *, const          void * );
    436 volatile void *         ?=?(       volatile void *          *,                void * );
    437 volatile void *         ?=?(       volatile void * volatile *,                void * );
    438 volatile void *         ?=?(       volatile void *          *,       volatile void * );
    439 volatile void *         ?=?(       volatile void * volatile *,       volatile void * );
    440 const volatile void *   ?=?( const volatile void *          *,                void * );
    441 const volatile void *   ?=?( const volatile void * volatile *,                void * );
    442 const volatile void *   ?=?( const volatile void *          *, const          void * );
    443 const volatile void *   ?=?( const volatile void * volatile *, const          void * );
    444 const volatile void *   ?=?( const volatile void *          *,       volatile void * );
    445 const volatile void *   ?=?( const volatile void * volatile *,       volatile void * );
    446 const volatile void *   ?=?( const volatile void *          *, const volatile void * );
    447 const volatile void *   ?=?( const volatile void * volatile *, const volatile void * );
    448 
    449 // //forall( dtype DT ) DT *                    ?=?(                DT *          *, zero_t );
    450 // //forall( dtype DT ) DT *                    ?=?(                DT * volatile *, zero_t );
    451 // forall( dtype DT ) const DT *                ?=?( const          DT *          *, zero_t );
    452 // forall( dtype DT ) const DT *                ?=?( const          DT * volatile *, zero_t );
    453 // //forall( dtype DT ) volatile DT *   ?=?( volatile       DT *          *, zero_t );
    454 // //forall( dtype DT ) volatile DT *   ?=?( volatile       DT * volatile *, );
    455 // forall( dtype DT ) const volatile DT *       ?=?( const volatile DT *          *, zero_t );
    456 // forall( dtype DT ) const volatile DT *       ?=?( const volatile DT * volatile *, zero_t );
    457 
    458 // forall( ftype FT ) FT *                      ?=?( FT *          *, zero_t );
    459 // forall( ftype FT ) FT *                      ?=?( FT * volatile *, zero_t );
    460 
    461 forall( dtype T | sized(T) ) T *                        ?+=?(                T *          *, ptrdiff_t );
    462 forall( dtype T | sized(T) ) T *                        ?+=?(                T * volatile *, ptrdiff_t );
    463 forall( dtype T | sized(T) ) const T *          ?+=?( const          T *          *, ptrdiff_t );
    464 forall( dtype T | sized(T) ) const T *          ?+=?( const          T * volatile *, ptrdiff_t );
    465 forall( dtype T | sized(T) ) volatile T *               ?+=?(       volatile T *          *, ptrdiff_t );
    466 forall( dtype T | sized(T) ) volatile T *               ?+=?(       volatile T * volatile *, ptrdiff_t );
    467 forall( dtype T | sized(T) ) const volatile T * ?+=?( const volatile T *          *, ptrdiff_t );
    468 forall( dtype T | sized(T) ) const volatile T * ?+=?( const volatile T * volatile *, ptrdiff_t );
    469 forall( dtype T | sized(T) ) T *                        ?-=?(                T *          *, ptrdiff_t );
    470 forall( dtype T | sized(T) ) T *                        ?-=?(                T * volatile *, ptrdiff_t );
    471 forall( dtype T | sized(T) ) const T *          ?-=?( const          T *          *, ptrdiff_t );
    472 forall( dtype T | sized(T) ) const T *          ?-=?( const          T * volatile *, ptrdiff_t );
    473 forall( dtype T | sized(T) ) volatile T *               ?-=?(       volatile T *          *, ptrdiff_t );
    474 forall( dtype T | sized(T) ) volatile T *               ?-=?(       volatile T * volatile *, ptrdiff_t );
    475 forall( dtype T | sized(T) ) const volatile T * ?-=?( const volatile T *          *, ptrdiff_t );
    476 forall( dtype T | sized(T) ) const volatile T * ?-=?( const volatile T * volatile *, ptrdiff_t );
    477 
    478 _Bool                   ?=?( _Bool *, _Bool ),                                  ?=?( volatile _Bool *, _Bool );
    479 char                    ?=?( char *, char ),                                    ?=?( volatile char *, char );
    480 char signed             ?=?( char signed *, char signed ),                      ?=?( volatile char signed *, char signed );
    481 char unsigned           ?=?( char unsigned *, char unsigned ),                  ?=?( volatile char unsigned *, char unsigned );
    482 int short               ?=?( int short *, int short ),                          ?=?( volatile int short *, int short );
    483 int short unsigned      ?=?( int short unsigned *, int short unsigned ),        ?=?( volatile int short unsigned *, int short unsigned );
    484 signed int              ?=?( signed int *, signed int ),                        ?=?( volatile signed int *, signed int );
    485 unsigned int            ?=?( unsigned *, unsigned ),                            ?=?( volatile unsigned *, unsigned );
    486 signed long int         ?=?( signed long int *, signed long int ),              ?=?( volatile signed long int *, signed long int );
    487 unsigned long int       ?=?( unsigned long int *, unsigned long int ),          ?=?( volatile unsigned long int *, unsigned long int );
    488 signed long long int    ?=?( signed long long int *, signed long long int ),    ?=?( volatile signed long long int *, signed long long int );
    489 unsigned long long int  ?=?( unsigned long long int *, unsigned long long int ), ?=?( volatile unsigned long long int *, unsigned long long int );
    490 zero_t          ?=?( zero_t *, zero_t );
    491 one_t                   ?=?( one_t *, one_t );
    492 
    493 
    494 _Bool                   ?*=?( _Bool *, _Bool ),                                 ?*=?( volatile _Bool *, _Bool );
    495 char                    ?*=?( char *, char ),                                   ?*=?( volatile char *, char );
    496 char signed             ?*=?( char signed *, char signed ),                     ?*=?( volatile char signed *, char signed );
    497 char unsigned           ?*=?( char unsigned *, char unsigned ),                 ?*=?( volatile char unsigned *, char unsigned );
    498 int short               ?*=?( int short *, int short ),                         ?*=?( volatile int short *, int short );
    499 int short unsigned      ?*=?( int short unsigned *, int short unsigned ),       ?*=?( volatile int short unsigned *, int short unsigned );
    500 signed int              ?*=?( signed int *, signed int ),                       ?*=?( volatile signed int *, signed int );
    501 unsigned int            ?*=?( unsigned *, unsigned ),                           ?*=?( volatile unsigned *, unsigned );
    502 signed long int         ?*=?( signed long int *, signed long int ),             ?*=?( volatile signed long int *, signed long int );
    503 unsigned long int       ?*=?( unsigned long int *, unsigned long int ),         ?*=?( volatile unsigned long int *, unsigned long int );
    504 signed long long int    ?*=?( signed long long int *, signed long long int ),   ?*=?( volatile signed long long int *, signed long long int );
    505 unsigned long long int  ?*=?( unsigned long long int *, unsigned long long int ), ?*=?( volatile unsigned long long int *, unsigned long long int );
    506 
    507 _Bool                   ?/=?( _Bool *, _Bool ),                                 ?/=?( volatile _Bool *, _Bool );
    508 char                    ?/=?( char *, char ),                                   ?/=?( volatile char *, char );
    509 char signed             ?/=?( char signed *, char signed ),                     ?/=?( volatile char signed *, char signed );
    510 char unsigned           ?/=?( char unsigned *, char unsigned ),                 ?/=?( volatile char unsigned *, char unsigned );
    511 int short               ?/=?( int short *, int short ),                         ?/=?( volatile int short *, int short );
    512 int short unsigned      ?/=?( int short unsigned *, int short unsigned ),       ?/=?( volatile int short unsigned *, int short unsigned );
    513 signed int              ?/=?( signed int *, signed int ),                       ?/=?( volatile signed int *, signed int );
    514 unsigned int            ?/=?( unsigned *, unsigned ),                           ?/=?( volatile unsigned *, unsigned );
    515 signed long int         ?/=?( signed long int *, signed long int ),             ?/=?( volatile signed long int *, signed long int );
    516 unsigned long int       ?/=?( unsigned long int *, unsigned long int ),         ?/=?( volatile unsigned long int *, unsigned long int );
    517 signed long long int    ?/=?( signed long long int *, signed long long int ),   ?/=?( volatile signed long long int *, signed long long int );
    518 unsigned long long int  ?/=?( unsigned long long int *, unsigned long long int ), ?/=?( volatile unsigned long long int *, unsigned long long int );
    519 
    520 _Bool                   ?%=?( _Bool *, _Bool ),                                 ?%=?( volatile _Bool *, _Bool );
    521 char                    ?%=?( char *, char ),                                   ?%=?( volatile char *, char );
    522 char signed             ?%=?( char signed *, char signed ),                     ?%=?( volatile char signed *, char signed );
    523 char unsigned           ?%=?( char unsigned *, char unsigned ),                 ?%=?( volatile char unsigned *, char unsigned );
    524 int short               ?%=?( int short *, int short ),                         ?%=?( volatile int short *, int short );
    525 int short unsigned      ?%=?( int short unsigned *, int short unsigned ),       ?%=?( volatile int short unsigned *, int short unsigned );
    526 signed int              ?%=?( signed int *, signed int ),                       ?%=?( volatile signed int *, signed int );
    527 unsigned int            ?%=?( unsigned *, unsigned ),                           ?%=?( volatile unsigned *, unsigned );
    528 signed long int         ?%=?( signed long int *, signed long int ),             ?%=?( volatile signed long int *, signed long int );
    529 unsigned long int       ?%=?( unsigned long int *, unsigned long int ),         ?%=?( volatile unsigned long int *, unsigned long int );
    530 signed long long int    ?%=?( signed long long int *, signed long long int ),   ?%=?( volatile signed long long int *, signed long long int );
    531 unsigned long long int  ?%=?( unsigned long long int *, unsigned long long int ), ?%=?( volatile unsigned long long int *, unsigned long long int );
    532 
    533 _Bool                   ?+=?( _Bool *, _Bool ),                                 ?+=?( volatile _Bool *, _Bool );
    534 char                    ?+=?( char *, char ),                                   ?+=?( volatile char *, char );
    535 char signed             ?+=?( char signed *, char signed ),                     ?+=?( volatile char signed *, char signed );
    536 char unsigned           ?+=?( char unsigned *, char unsigned ),                 ?+=?( volatile char unsigned *, char unsigned );
    537 int short               ?+=?( int short *, int short ),                         ?+=?( volatile int short *, int short );
    538 int short unsigned      ?+=?( int short unsigned *, int short unsigned ),       ?+=?( volatile int short unsigned *, int short unsigned );
    539 signed int              ?+=?( signed int *, signed int ),                       ?+=?( volatile signed int *, signed int );
    540 unsigned int            ?+=?( unsigned *, unsigned ),                           ?+=?( volatile unsigned *, unsigned );
    541 signed long int         ?+=?( signed long int *, signed long int ),             ?+=?( volatile signed long int *, signed long int );
    542 unsigned long int       ?+=?( unsigned long int *, unsigned long int ),         ?+=?( volatile unsigned long int *, unsigned long int );
    543 signed long long int    ?+=?( signed long long int *, signed long long int ),   ?+=?( volatile signed long long int *, signed long long int );
    544 unsigned long long int  ?+=?( unsigned long long int *, unsigned long long int ), ?+=?( volatile unsigned long long int *, unsigned long long int );
    545 
    546 _Bool                   ?-=?( _Bool *, _Bool ),                                 ?-=?( volatile _Bool *, _Bool );
    547 char                    ?-=?( char *, char ),                                   ?-=?( volatile char *, char );
    548 char signed             ?-=?( char signed *, char signed ),                     ?-=?( volatile char signed *, char signed );
    549 char unsigned           ?-=?( char unsigned *, char unsigned ),                 ?-=?( volatile char unsigned *, char unsigned );
    550 int short               ?-=?( int short *, int short ),                         ?-=?( volatile int short *, int short );
    551 int short unsigned      ?-=?( int short unsigned *, int short unsigned ),       ?-=?( volatile int short unsigned *, int short unsigned );
    552 signed int              ?-=?( signed int *, signed int ),                       ?-=?( volatile signed int *, signed int );
    553 unsigned int            ?-=?( unsigned *, unsigned ),                           ?-=?( volatile unsigned *, unsigned );
    554 signed long int         ?-=?( signed long int *, signed long int ),             ?-=?( volatile signed long int *, signed long int );
    555 unsigned long int       ?-=?( unsigned long int *, unsigned long int ),         ?-=?( volatile unsigned long int *, unsigned long int );
    556 signed long long int    ?-=?( signed long long int *, signed long long int ),   ?-=?( volatile signed long long int *, signed long long int );
    557 unsigned long long int  ?-=?( unsigned long long int *, unsigned long long int ), ?-=?( volatile unsigned long long int *, unsigned long long int );
    558 
    559 _Bool                   ?<<=?( _Bool *, _Bool ),                                ?<<=?( volatile _Bool *, _Bool );
    560 char                    ?<<=?( char *, char ),                                  ?<<=?( volatile char *, char );
    561 char signed             ?<<=?( char signed *, char signed ),                    ?<<=?( volatile char signed *, char signed );
    562 char unsigned           ?<<=?( char unsigned *, char unsigned ),                ?<<=?( volatile char unsigned *, char unsigned );
    563 int short               ?<<=?( int short *, int short ),                        ?<<=?( volatile int short *, int short );
    564 int short unsigned      ?<<=?( int short unsigned *, int short unsigned ),      ?<<=?( volatile int short unsigned *, int short unsigned );
    565 signed int              ?<<=?( signed int *, signed int ),                      ?<<=?( volatile signed int *, signed int );
    566 unsigned int            ?<<=?( unsigned *, unsigned ),                          ?<<=?( volatile unsigned *, unsigned );
    567 signed long int         ?<<=?( signed long int *, signed long int ),            ?<<=?( volatile signed long int *, signed long int );
    568 unsigned long int       ?<<=?( unsigned long int *, unsigned long int ),        ?<<=?( volatile unsigned long int *, unsigned long int );
    569 signed long long int    ?<<=?( signed long long int *, signed long long int ),  ?<<=?( volatile signed long long int *, signed long long int );
    570 unsigned long long int  ?<<=?( unsigned long long int *, unsigned long long int ), ?<<=?( volatile unsigned long long int *, unsigned long long int );
    571 
    572 _Bool                   ?>>=?( _Bool *, _Bool ),                                ?>>=?( volatile _Bool *, _Bool );
    573 char                    ?>>=?( char *, char ),                                  ?>>=?( volatile char *, char );
    574 char signed             ?>>=?( char signed *, char signed ),                    ?>>=?( volatile char signed *, char signed );
    575 char unsigned           ?>>=?( char unsigned *, char unsigned ),                ?>>=?( volatile char unsigned *, char unsigned );
    576 int short               ?>>=?( int short *, int short ),                        ?>>=?( volatile int short *, int short );
    577 int short unsigned      ?>>=?( int short unsigned *, int short unsigned ),      ?>>=?( volatile int short unsigned *, int short unsigned );
    578 signed int              ?>>=?( signed int *, signed int ),                      ?>>=?( volatile signed int *, signed int );
    579 unsigned int            ?>>=?( unsigned *, unsigned ),                          ?>>=?( volatile unsigned *, unsigned );
    580 signed long int         ?>>=?( signed long int *, signed long int ),            ?>>=?( volatile signed long int *, signed long int );
    581 unsigned long int       ?>>=?( unsigned long int *, unsigned long int ),        ?>>=?( volatile unsigned long int *, unsigned long int );
    582 signed long long int    ?>>=?( signed long long int *, signed long long int ),  ?>>=?( volatile signed long long int *, signed long long int );
    583 unsigned long long int  ?>>=?( unsigned long long int *, unsigned long long int ), ?>>=?( volatile unsigned long long int *, unsigned long long int );
    584 
    585 _Bool                   ?&=?( _Bool *, _Bool ),                                 ?&=?( volatile _Bool *, _Bool );
    586 char                    ?&=?( char *, char ),                                   ?&=?( volatile char *, char );
    587 char signed             ?&=?( char signed *, char signed ),                     ?&=?( volatile char signed *, char signed );
    588 char unsigned           ?&=?( char unsigned *, char unsigned ),                 ?&=?( volatile char unsigned *, char unsigned );
    589 int short               ?&=?( int short *, int short ),                         ?&=?( volatile int short *, int short );
    590 int short unsigned      ?&=?( int short unsigned *, int short unsigned ),       ?&=?( volatile int short unsigned *, int short unsigned );
    591 signed int              ?&=?( signed int *, signed int ),                       ?&=?( volatile signed int *, signed int );
    592 unsigned int            ?&=?( unsigned *, unsigned ),                           ?&=?( volatile unsigned *, unsigned );
    593 signed long int         ?&=?( signed long int *, signed long int ),             ?&=?( volatile signed long int *, signed long int );
    594 unsigned long int       ?&=?( unsigned long int *, unsigned long int ),         ?&=?( volatile unsigned long int *, unsigned long int );
    595 signed long long int    ?&=?( signed long long int *, signed long long int ),   ?&=?( volatile signed long long int *, signed long long int );
    596 unsigned long long int  ?&=?( unsigned long long int *, unsigned long long int ), ?&=?( volatile unsigned long long int *, unsigned long long int );
    597 
    598 _Bool                   ?|=?( _Bool *, _Bool ),                                 ?|=?( volatile _Bool *, _Bool );
    599 char                    ?|=?( char *, char ),                                   ?|=?( volatile char *, char );
    600 char signed             ?|=?( char signed *, char signed ),                     ?|=?( volatile char signed *, char signed );
    601 char unsigned           ?|=?( char unsigned *, char unsigned ),                 ?|=?( volatile char unsigned *, char unsigned );
    602 int short               ?|=?( int short *, int short ),                         ?|=?( volatile int short *, int short );
    603 int short unsigned      ?|=?( int short unsigned *, int short unsigned ),       ?|=?( volatile int short unsigned *, int short unsigned );
    604 signed int              ?|=?( signed int *, signed int ),                       ?|=?( volatile signed int *, signed int );
    605 unsigned int            ?|=?( unsigned *, unsigned ),                           ?|=?( volatile unsigned *, unsigned );
    606 signed long int         ?|=?( signed long int *, signed long int ),             ?|=?( volatile signed long int *, signed long int );
    607 unsigned long int       ?|=?( unsigned long int *, unsigned long int ),         ?|=?( volatile unsigned long int *, unsigned long int );
    608 signed long long int    ?|=?( signed long long int *, signed long long int ),   ?|=?( volatile signed long long int *, signed long long int );
    609 unsigned long long int  ?|=?( unsigned long long int *, unsigned long long int ), ?|=?( volatile unsigned long long int *, unsigned long long int );
    610 
    611 _Bool                   ?^=?( _Bool *, _Bool ),                                 ?^=?( volatile _Bool *, _Bool );
    612 char                    ?^=?( char *, char ),                                   ?^=?( volatile char *, char );
    613 char signed             ?^=?( char signed *, char signed ),                     ?^=?( volatile char signed *, char signed );
    614 char unsigned           ?^=?( char unsigned *, char unsigned ),                 ?^=?( volatile char unsigned *, char unsigned );
    615 int short               ?^=?( int short *, int short ),                         ?^=?( volatile int short *, int short );
    616 int short unsigned      ?^=?( int short unsigned *, int short unsigned ),       ?^=?( volatile int short unsigned *, int short unsigned );
    617 signed int              ?^=?( signed int *, signed int ),                       ?^=?( volatile signed int *, signed int );
    618 unsigned int            ?^=?( unsigned *, unsigned ),                           ?^=?( volatile unsigned *, unsigned );
    619 signed long int         ?^=?( signed long int *, signed long int ),             ?^=?( volatile signed long int *, signed long int );
    620 unsigned long int       ?^=?( unsigned long int *, unsigned long int ),         ?^=?( volatile unsigned long int *, unsigned long int );
    621 signed long long int    ?^=?( signed long long int *, signed long long int ),   ?^=?( volatile signed long long int *, signed long long int );
    622 unsigned long long int  ?^=?( unsigned long long int *, unsigned long long int ), ?^=?( volatile unsigned long long int *, unsigned long long int );
    623 
    624 float                   ?=?(  float *, float ), ?=?(  volatile float *, float ),
    625                         ?*=?( float *, float ), ?*=?( volatile float *, float ),
    626                         ?/=?( float *, float ), ?/=?( volatile float *, float ),
    627                         ?+=?( float *, float ), ?+=?( volatile float *, float ),
    628                         ?-=?( float *, float ), ?-=?( volatile float *, float );
    629 
    630 double                  ?=?(  double *, double ), ?=?(  volatile double *, double ),
    631                         ?*=?( double *, double ), ?*=?( volatile double *, double ),
    632                         ?/=?( double *, double ), ?/=?( volatile double *, double ),
    633                         ?+=?( double *, double ), ?+=?( volatile double *, double ),
    634                         ?-=?( double *, double ), ?-=?( volatile double *, double );
    635 
    636 long double             ?=?(  long double *, long double ), ?=?(  volatile long double *, long double ),
    637                         ?*=?( long double *, long double ), ?*=?( volatile long double *, long double ),
    638                         ?/=?( long double *, long double ), ?/=?( volatile long double *, long double ),
    639                         ?+=?( long double *, long double ), ?+=?( volatile long double *, long double ),
    640                         ?-=?( long double *, long double ), ?-=?( volatile long double *, long double );
    641 
    642 float _Complex          ?=?(  float _Complex *, float _Complex ), ?=?(  volatile float _Complex *, float _Complex ),
    643                         ?*=?( float _Complex *, float _Complex ), ?*=?( volatile float _Complex *, float _Complex ),
    644                         ?/=?( float _Complex *, float _Complex ), ?/=?( volatile float _Complex *, float _Complex ),
    645                         ?+=?( float _Complex *, float _Complex ), ?+=?( volatile float _Complex *, float _Complex ),
    646                         ?-=?( float _Complex *, float _Complex ), ?-=?( volatile float _Complex *, float _Complex );
    647 
    648 double _Complex         ?=?(  double _Complex *, double _Complex ), ?=?(  volatile double _Complex *, double _Complex ),
    649                         ?*=?( double _Complex *, double _Complex ), ?*=?( volatile double _Complex *, double _Complex ),
    650                         ?/=?( double _Complex *, double _Complex ), ?/=?( volatile double _Complex *, double _Complex ),
    651                         ?+=?( double _Complex *, double _Complex ), ?+=?( volatile double _Complex *, double _Complex ),
    652                         ?-=?( double _Complex *, double _Complex ), ?-=?( volatile double _Complex *, double _Complex );
    653 
    654 long double _Complex    ?=?(  long double _Complex *, long double _Complex ), ?=?(  volatile long double _Complex *, long double _Complex ),
    655                         ?*=?( long double _Complex *, long double _Complex ), ?*=?( volatile long double _Complex *, long double _Complex ),
    656                         ?/=?( long double _Complex *, long double _Complex ), ?/=?( volatile long double _Complex *, long double _Complex ),
    657                         ?+=?( long double _Complex *, long double _Complex ), ?+=?( volatile long double _Complex *, long double _Complex ),
    658                         ?-=?( long double _Complex *, long double _Complex ), ?-=?( volatile long double _Complex *, long double _Complex );
     368forall( ftype FT ) FT *                 ?=?( FT *&, FT * );
     369forall( ftype FT ) FT *                 ?=?( FT * volatile &, FT * );
     370
     371forall( dtype DT ) DT *                 ?=?(                 DT *          &,                   DT * );
     372forall( dtype DT ) DT *                 ?=?(                 DT * volatile &,                   DT * );
     373forall( dtype DT ) const DT *           ?=?( const           DT *          &,                   DT * );
     374forall( dtype DT ) const DT *           ?=?( const           DT * volatile &,                   DT * );
     375forall( dtype DT ) const DT *           ?=?( const           DT *          &, const             DT * );
     376forall( dtype DT ) const DT *           ?=?( const           DT * volatile &, const             DT * );
     377forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          &,                   DT * );
     378forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile &,                   DT * );
     379forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          &,       volatile    DT * );
     380forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile &,       volatile    DT * );
     381
     382forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &,                   DT * );
     383forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &,                   DT * );
     384forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &, const             DT * );
     385forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &, const             DT * );
     386forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &,       volatile    DT * );
     387forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &,       volatile    DT * );
     388forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &, const volatile    DT * );
     389forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &, const volatile    DT * );
     390
     391forall( dtype DT ) DT *                 ?=?(                 DT *          &,                   void * );
     392forall( dtype DT ) DT *                 ?=?(                 DT * volatile &,                   void * );
     393forall( dtype DT ) const DT *           ?=?( const           DT *          &,                   void * );
     394forall( dtype DT ) const DT *           ?=?( const           DT * volatile &,                   void * );
     395forall( dtype DT ) const DT *           ?=?( const           DT *          &, const             void * );
     396forall( dtype DT ) const DT *           ?=?( const           DT * volatile &, const             void * );
     397forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          &,                   void * );
     398forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile &,                   void * );
     399forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          &,       volatile    void * );
     400forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile &,       volatile    void * );
     401
     402forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &,                   void * );
     403forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &,                   void * );
     404forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &, const             void * );
     405forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &, const             void * );
     406forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &,       volatile    void * );
     407forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &,       volatile    void * );
     408forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          &, const volatile    void * );
     409forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile &, const volatile    void * );
     410
     411forall( dtype DT ) void *                ?=?(                void *          &,                 DT * );
     412forall( dtype DT ) void *                ?=?(                void * volatile &,                 DT * );
     413forall( dtype DT ) const void *          ?=?( const          void *          &,                 DT * );
     414forall( dtype DT ) const void *          ?=?( const          void * volatile &,                 DT * );
     415forall( dtype DT ) const void *          ?=?( const          void *          &, const           DT * );
     416forall( dtype DT ) const void *          ?=?( const          void * volatile &, const           DT * );
     417forall( dtype DT ) volatile void *       ?=?(       volatile void *          &,                 DT * );
     418forall( dtype DT ) volatile void *       ?=?(       volatile void * volatile &,                 DT * );
     419forall( dtype DT ) volatile void *       ?=?(       volatile void *          &,       volatile  DT * );
     420forall( dtype DT ) volatile void *       ?=?(       volatile void * volatile &,       volatile  DT * );
     421forall( dtype DT ) const volatile void * ?=?( const volatile void *          &,                 DT * );
     422forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile &,                 DT * );
     423forall( dtype DT ) const volatile void * ?=?( const volatile void *          &, const           DT * );
     424forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile &, const           DT * );
     425forall( dtype DT ) const volatile void * ?=?( const volatile void *          &,       volatile  DT * );
     426forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile &,       volatile  DT * );
     427forall( dtype DT ) const volatile void * ?=?( const volatile void *          &, const volatile  DT * );
     428forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile &, const volatile  DT * );
     429
     430void *                  ?=?(                void *          &,                void * );
     431void *                  ?=?(                void * volatile &,                void * );
     432const void *            ?=?( const          void *          &,                void * );
     433const void *            ?=?( const          void * volatile &,                void * );
     434const void *            ?=?( const          void *          &, const          void * );
     435const void *            ?=?( const          void * volatile &, const          void * );
     436volatile void *         ?=?(       volatile void *          &,                void * );
     437volatile void *         ?=?(       volatile void * volatile &,                void * );
     438volatile void *         ?=?(       volatile void *          &,       volatile void * );
     439volatile void *         ?=?(       volatile void * volatile &,       volatile void * );
     440const volatile void *   ?=?( const volatile void *          &,                void * );
     441const volatile void *   ?=?( const volatile void * volatile &,                void * );
     442const volatile void *   ?=?( const volatile void *          &, const          void * );
     443const volatile void *   ?=?( const volatile void * volatile &, const          void * );
     444const volatile void *   ?=?( const volatile void *          &,       volatile void * );
     445const volatile void *   ?=?( const volatile void * volatile &,       volatile void * );
     446const volatile void *   ?=?( const volatile void *          &, const volatile void * );
     447const volatile void *   ?=?( const volatile void * volatile &, const volatile void * );
     448
     449//forall( dtype DT ) DT *                       ?=?(                DT *          &, forall( dtype DT2 ) const DT2 * );
     450//forall( dtype DT ) DT *                       ?=?(                DT * volatile &, forall( dtype DT2 ) const DT2 * );
     451forall( dtype DT ) const DT *           ?=?( const          DT *          &, forall( dtype DT2 ) const DT2 * );
     452forall( dtype DT ) const DT *           ?=?( const          DT * volatile &, forall( dtype DT2 ) const DT2 * );
     453//forall( dtype DT ) volatile DT *      ?=?( volatile       DT *          &, forall( dtype DT2 ) const DT2 * );
     454//forall( dtype DT ) volatile DT *      ?=?( volatile       DT * volatile &, forall( dtype DT2 ) const DT2 * );
     455forall( dtype DT ) const volatile DT *  ?=?( const volatile DT *          &, forall( dtype DT2 ) const DT2 * );
     456forall( dtype DT ) const volatile DT *  ?=?( const volatile DT * volatile &, forall( dtype DT2 ) const DT2 * );
     457
     458forall( ftype FT ) FT *                 ?=?( FT *          &, forall( ftype FT2 ) FT2 * );
     459forall( ftype FT ) FT *                 ?=?( FT * volatile &, forall( ftype FT2 ) FT2 * );
     460
     461forall( dtype T | sized(T) ) T *                        ?+=?(                T *          &, ptrdiff_t );
     462forall( dtype T | sized(T) ) T *                        ?+=?(                T * volatile &, ptrdiff_t );
     463forall( dtype T | sized(T) ) const T *          ?+=?( const          T *          &, ptrdiff_t );
     464forall( dtype T | sized(T) ) const T *          ?+=?( const          T * volatile &, ptrdiff_t );
     465forall( dtype T | sized(T) ) volatile T *               ?+=?(       volatile T *          &, ptrdiff_t );
     466forall( dtype T | sized(T) ) volatile T *               ?+=?(       volatile T * volatile &, ptrdiff_t );
     467forall( dtype T | sized(T) ) const volatile T * ?+=?( const volatile T *          &, ptrdiff_t );
     468forall( dtype T | sized(T) ) const volatile T * ?+=?( const volatile T * volatile &, ptrdiff_t );
     469forall( dtype T | sized(T) ) T *                        ?-=?(                T *          &, ptrdiff_t );
     470forall( dtype T | sized(T) ) T *                        ?-=?(                T * volatile &, ptrdiff_t );
     471forall( dtype T | sized(T) ) const T *          ?-=?( const          T *          &, ptrdiff_t );
     472forall( dtype T | sized(T) ) const T *          ?-=?( const          T * volatile &, ptrdiff_t );
     473forall( dtype T | sized(T) ) volatile T *               ?-=?(       volatile T *          &, ptrdiff_t );
     474forall( dtype T | sized(T) ) volatile T *               ?-=?(       volatile T * volatile &, ptrdiff_t );
     475forall( dtype T | sized(T) ) const volatile T * ?-=?( const volatile T *          &, ptrdiff_t );
     476forall( dtype T | sized(T) ) const volatile T * ?-=?( const volatile T * volatile &, ptrdiff_t );
     477
     478_Bool                   ?=?( _Bool &, _Bool ),                                  ?=?( volatile _Bool &, _Bool );
     479char                    ?=?( char &, char ),                                    ?=?( volatile char &, char );
     480char signed             ?=?( char signed &, char signed ),                      ?=?( volatile char signed &, char signed );
     481char unsigned           ?=?( char unsigned &, char unsigned ),                  ?=?( volatile char unsigned &, char unsigned );
     482int short               ?=?( int short &, int short ),                          ?=?( volatile int short &, int short );
     483int short unsigned      ?=?( int short unsigned &, int short unsigned ),        ?=?( volatile int short unsigned &, int short unsigned );
     484signed int              ?=?( signed int &, signed int ),                        ?=?( volatile signed int &, signed int );
     485unsigned int            ?=?( unsigned &, unsigned ),                            ?=?( volatile unsigned &, unsigned );
     486signed long int         ?=?( signed long int &, signed long int ),              ?=?( volatile signed long int &, signed long int );
     487unsigned long int       ?=?( unsigned long int &, unsigned long int ),          ?=?( volatile unsigned long int &, unsigned long int );
     488signed long long int    ?=?( signed long long int &, signed long long int ),    ?=?( volatile signed long long int &, signed long long int );
     489unsigned long long int  ?=?( unsigned long long int &, unsigned long long int ), ?=?( volatile unsigned long long int &, unsigned long long int );
     490zero_t          ?=?( zero_t &, zero_t );
     491one_t                   ?=?( one_t &, one_t );
     492
     493
     494_Bool                   ?*=?( _Bool &, _Bool ),                                 ?*=?( volatile _Bool &, _Bool );
     495char                    ?*=?( char &, char ),                                   ?*=?( volatile char &, char );
     496char signed             ?*=?( char signed &, char signed ),                     ?*=?( volatile char signed &, char signed );
     497char unsigned           ?*=?( char unsigned &, char unsigned ),                 ?*=?( volatile char unsigned &, char unsigned );
     498int short               ?*=?( int short &, int short ),                         ?*=?( volatile int short &, int short );
     499int short unsigned      ?*=?( int short unsigned &, int short unsigned ),       ?*=?( volatile int short unsigned &, int short unsigned );
     500signed int              ?*=?( signed int &, signed int ),                       ?*=?( volatile signed int &, signed int );
     501unsigned int            ?*=?( unsigned &, unsigned ),                           ?*=?( volatile unsigned &, unsigned );
     502signed long int         ?*=?( signed long int &, signed long int ),             ?*=?( volatile signed long int &, signed long int );
     503unsigned long int       ?*=?( unsigned long int &, unsigned long int ),         ?*=?( volatile unsigned long int &, unsigned long int );
     504signed long long int    ?*=?( signed long long int &, signed long long int ),   ?*=?( volatile signed long long int &, signed long long int );
     505unsigned long long int  ?*=?( unsigned long long int &, unsigned long long int ), ?*=?( volatile unsigned long long int &, unsigned long long int );
     506
     507_Bool                   ?/=?( _Bool &, _Bool ),                                 ?/=?( volatile _Bool &, _Bool );
     508char                    ?/=?( char &, char ),                                   ?/=?( volatile char &, char );
     509char signed             ?/=?( char signed &, char signed ),                     ?/=?( volatile char signed &, char signed );
     510char unsigned           ?/=?( char unsigned &, char unsigned ),                 ?/=?( volatile char unsigned &, char unsigned );
     511int short               ?/=?( int short &, int short ),                         ?/=?( volatile int short &, int short );
     512int short unsigned      ?/=?( int short unsigned &, int short unsigned ),       ?/=?( volatile int short unsigned &, int short unsigned );
     513signed int              ?/=?( signed int &, signed int ),                       ?/=?( volatile signed int &, signed int );
     514unsigned int            ?/=?( unsigned &, unsigned ),                           ?/=?( volatile unsigned &, unsigned );
     515signed long int         ?/=?( signed long int &, signed long int ),             ?/=?( volatile signed long int &, signed long int );
     516unsigned long int       ?/=?( unsigned long int &, unsigned long int ),         ?/=?( volatile unsigned long int &, unsigned long int );
     517signed long long int    ?/=?( signed long long int &, signed long long int ),   ?/=?( volatile signed long long int &, signed long long int );
     518unsigned long long int  ?/=?( unsigned long long int &, unsigned long long int ), ?/=?( volatile unsigned long long int &, unsigned long long int );
     519
     520_Bool                   ?%=?( _Bool &, _Bool ),                                 ?%=?( volatile _Bool &, _Bool );
     521char                    ?%=?( char &, char ),                                   ?%=?( volatile char &, char );
     522char signed             ?%=?( char signed &, char signed ),                     ?%=?( volatile char signed &, char signed );
     523char unsigned           ?%=?( char unsigned &, char unsigned ),                 ?%=?( volatile char unsigned &, char unsigned );
     524int short               ?%=?( int short &, int short ),                         ?%=?( volatile int short &, int short );
     525int short unsigned      ?%=?( int short unsigned &, int short unsigned ),       ?%=?( volatile int short unsigned &, int short unsigned );
     526signed int              ?%=?( signed int &, signed int ),                       ?%=?( volatile signed int &, signed int );
     527unsigned int            ?%=?( unsigned &, unsigned ),                           ?%=?( volatile unsigned &, unsigned );
     528signed long int         ?%=?( signed long int &, signed long int ),             ?%=?( volatile signed long int &, signed long int );
     529unsigned long int       ?%=?( unsigned long int &, unsigned long int ),         ?%=?( volatile unsigned long int &, unsigned long int );
     530signed long long int    ?%=?( signed long long int &, signed long long int ),   ?%=?( volatile signed long long int &, signed long long int );
     531unsigned long long int  ?%=?( unsigned long long int &, unsigned long long int ), ?%=?( volatile unsigned long long int &, unsigned long long int );
     532
     533_Bool                   ?+=?( _Bool &, _Bool ),                                 ?+=?( volatile _Bool &, _Bool );
     534char                    ?+=?( char &, char ),                                   ?+=?( volatile char &, char );
     535char signed             ?+=?( char signed &, char signed ),                     ?+=?( volatile char signed &, char signed );
     536char unsigned           ?+=?( char unsigned &, char unsigned ),                 ?+=?( volatile char unsigned &, char unsigned );
     537int short               ?+=?( int short &, int short ),                         ?+=?( volatile int short &, int short );
     538int short unsigned      ?+=?( int short unsigned &, int short unsigned ),       ?+=?( volatile int short unsigned &, int short unsigned );
     539signed int              ?+=?( signed int &, signed int ),                       ?+=?( volatile signed int &, signed int );
     540unsigned int            ?+=?( unsigned &, unsigned ),                           ?+=?( volatile unsigned &, unsigned );
     541signed long int         ?+=?( signed long int &, signed long int ),             ?+=?( volatile signed long int &, signed long int );
     542unsigned long int       ?+=?( unsigned long int &, unsigned long int ),         ?+=?( volatile unsigned long int &, unsigned long int );
     543signed long long int    ?+=?( signed long long int &, signed long long int ),   ?+=?( volatile signed long long int &, signed long long int );
     544unsigned long long int  ?+=?( unsigned long long int &, unsigned long long int ), ?+=?( volatile unsigned long long int &, unsigned long long int );
     545
     546_Bool                   ?-=?( _Bool &, _Bool ),                                 ?-=?( volatile _Bool &, _Bool );
     547char                    ?-=?( char &, char ),                                   ?-=?( volatile char &, char );
     548char signed             ?-=?( char signed &, char signed ),                     ?-=?( volatile char signed &, char signed );
     549char unsigned           ?-=?( char unsigned &, char unsigned ),                 ?-=?( volatile char unsigned &, char unsigned );
     550int short               ?-=?( int short &, int short ),                         ?-=?( volatile int short &, int short );
     551int short unsigned      ?-=?( int short unsigned &, int short unsigned ),       ?-=?( volatile int short unsigned &, int short unsigned );
     552signed int              ?-=?( signed int &, signed int ),                       ?-=?( volatile signed int &, signed int );
     553unsigned int            ?-=?( unsigned &, unsigned ),                           ?-=?( volatile unsigned &, unsigned );
     554signed long int         ?-=?( signed long int &, signed long int ),             ?-=?( volatile signed long int &, signed long int );
     555unsigned long int       ?-=?( unsigned long int &, unsigned long int ),         ?-=?( volatile unsigned long int &, unsigned long int );
     556signed long long int    ?-=?( signed long long int &, signed long long int ),   ?-=?( volatile signed long long int &, signed long long int );
     557unsigned long long int  ?-=?( unsigned long long int &, unsigned long long int ), ?-=?( volatile unsigned long long int &, unsigned long long int );
     558
     559_Bool                   ?<<=?( _Bool &, _Bool ),                                ?<<=?( volatile _Bool &, _Bool );
     560char                    ?<<=?( char &, char ),                                  ?<<=?( volatile char &, char );
     561char signed             ?<<=?( char signed &, char signed ),                    ?<<=?( volatile char signed &, char signed );
     562char unsigned           ?<<=?( char unsigned &, char unsigned ),                ?<<=?( volatile char unsigned &, char unsigned );
     563int short               ?<<=?( int short &, int short ),                        ?<<=?( volatile int short &, int short );
     564int short unsigned      ?<<=?( int short unsigned &, int short unsigned ),      ?<<=?( volatile int short unsigned &, int short unsigned );
     565signed int              ?<<=?( signed int &, signed int ),                      ?<<=?( volatile signed int &, signed int );
     566unsigned int            ?<<=?( unsigned &, unsigned ),                          ?<<=?( volatile unsigned &, unsigned );
     567signed long int         ?<<=?( signed long int &, signed long int ),            ?<<=?( volatile signed long int &, signed long int );
     568unsigned long int       ?<<=?( unsigned long int &, unsigned long int ),        ?<<=?( volatile unsigned long int &, unsigned long int );
     569signed long long int    ?<<=?( signed long long int &, signed long long int ),  ?<<=?( volatile signed long long int &, signed long long int );
     570unsigned long long int  ?<<=?( unsigned long long int &, unsigned long long int ), ?<<=?( volatile unsigned long long int &, unsigned long long int );
     571
     572_Bool                   ?>>=?( _Bool &, _Bool ),                                ?>>=?( volatile _Bool &, _Bool );
     573char                    ?>>=?( char &, char ),                                  ?>>=?( volatile char &, char );
     574char signed             ?>>=?( char signed &, char signed ),                    ?>>=?( volatile char signed &, char signed );
     575char unsigned           ?>>=?( char unsigned &, char unsigned ),                ?>>=?( volatile char unsigned &, char unsigned );
     576int short               ?>>=?( int short &, int short ),                        ?>>=?( volatile int short &, int short );
     577int short unsigned      ?>>=?( int short unsigned &, int short unsigned ),      ?>>=?( volatile int short unsigned &, int short unsigned );
     578signed int              ?>>=?( signed int &, signed int ),                      ?>>=?( volatile signed int &, signed int );
     579unsigned int            ?>>=?( unsigned &, unsigned ),                          ?>>=?( volatile unsigned &, unsigned );
     580signed long int         ?>>=?( signed long int &, signed long int ),            ?>>=?( volatile signed long int &, signed long int );
     581unsigned long int       ?>>=?( unsigned long int &, unsigned long int ),        ?>>=?( volatile unsigned long int &, unsigned long int );
     582signed long long int    ?>>=?( signed long long int &, signed long long int ),  ?>>=?( volatile signed long long int &, signed long long int );
     583unsigned long long int  ?>>=?( unsigned long long int &, unsigned long long int ), ?>>=?( volatile unsigned long long int &, unsigned long long int );
     584
     585_Bool                   ?&=?( _Bool &, _Bool ),                                 ?&=?( volatile _Bool &, _Bool );
     586char                    ?&=?( char &, char ),                                   ?&=?( volatile char &, char );
     587char signed             ?&=?( char signed &, char signed ),                     ?&=?( volatile char signed &, char signed );
     588char unsigned           ?&=?( char unsigned &, char unsigned ),                 ?&=?( volatile char unsigned &, char unsigned );
     589int short               ?&=?( int short &, int short ),                         ?&=?( volatile int short &, int short );
     590int short unsigned      ?&=?( int short unsigned &, int short unsigned ),       ?&=?( volatile int short unsigned &, int short unsigned );
     591signed int              ?&=?( signed int &, signed int ),                       ?&=?( volatile signed int &, signed int );
     592unsigned int            ?&=?( unsigned &, unsigned ),                           ?&=?( volatile unsigned &, unsigned );
     593signed long int         ?&=?( signed long int &, signed long int ),             ?&=?( volatile signed long int &, signed long int );
     594unsigned long int       ?&=?( unsigned long int &, unsigned long int ),         ?&=?( volatile unsigned long int &, unsigned long int );
     595signed long long int    ?&=?( signed long long int &, signed long long int ),   ?&=?( volatile signed long long int &, signed long long int );
     596unsigned long long int  ?&=?( unsigned long long int &, unsigned long long int ), ?&=?( volatile unsigned long long int &, unsigned long long int );
     597
     598_Bool                   ?|=?( _Bool &, _Bool ),                                 ?|=?( volatile _Bool &, _Bool );
     599char                    ?|=?( char &, char ),                                   ?|=?( volatile char &, char );
     600char signed             ?|=?( char signed &, char signed ),                     ?|=?( volatile char signed &, char signed );
     601char unsigned           ?|=?( char unsigned &, char unsigned ),                 ?|=?( volatile char unsigned &, char unsigned );
     602int short               ?|=?( int short &, int short ),                         ?|=?( volatile int short &, int short );
     603int short unsigned      ?|=?( int short unsigned &, int short unsigned ),       ?|=?( volatile int short unsigned &, int short unsigned );
     604signed int              ?|=?( signed int &, signed int ),                       ?|=?( volatile signed int &, signed int );
     605unsigned int            ?|=?( unsigned &, unsigned ),                           ?|=?( volatile unsigned &, unsigned );
     606signed long int         ?|=?( signed long int &, signed long int ),             ?|=?( volatile signed long int &, signed long int );
     607unsigned long int       ?|=?( unsigned long int &, unsigned long int ),         ?|=?( volatile unsigned long int &, unsigned long int );
     608signed long long int    ?|=?( signed long long int &, signed long long int ),   ?|=?( volatile signed long long int &, signed long long int );
     609unsigned long long int  ?|=?( unsigned long long int &, unsigned long long int ), ?|=?( volatile unsigned long long int &, unsigned long long int );
     610
     611_Bool                   ?^=?( _Bool &, _Bool ),                                 ?^=?( volatile _Bool &, _Bool );
     612char                    ?^=?( char &, char ),                                   ?^=?( volatile char &, char );
     613char signed             ?^=?( char signed &, char signed ),                     ?^=?( volatile char signed &, char signed );
     614char unsigned           ?^=?( char unsigned &, char unsigned ),                 ?^=?( volatile char unsigned &, char unsigned );
     615int short               ?^=?( int short &, int short ),                         ?^=?( volatile int short &, int short );
     616int short unsigned      ?^=?( int short unsigned &, int short unsigned ),       ?^=?( volatile int short unsigned &, int short unsigned );
     617signed int              ?^=?( signed int &, signed int ),                       ?^=?( volatile signed int &, signed int );
     618unsigned int            ?^=?( unsigned &, unsigned ),                           ?^=?( volatile unsigned &, unsigned );
     619signed long int         ?^=?( signed long int &, signed long int ),             ?^=?( volatile signed long int &, signed long int );
     620unsigned long int       ?^=?( unsigned long int &, unsigned long int ),         ?^=?( volatile unsigned long int &, unsigned long int );
     621signed long long int    ?^=?( signed long long int &, signed long long int ),   ?^=?( volatile signed long long int &, signed long long int );
     622unsigned long long int  ?^=?( unsigned long long int &, unsigned long long int ), ?^=?( volatile unsigned long long int &, unsigned long long int );
     623
     624float                   ?=?(  float &, float ), ?=?(  volatile float &, float ),
     625                        ?*=?( float &, float ), ?*=?( volatile float &, float ),
     626                        ?/=?( float &, float ), ?/=?( volatile float &, float ),
     627                        ?+=?( float &, float ), ?+=?( volatile float &, float ),
     628                        ?-=?( float &, float ), ?-=?( volatile float &, float );
     629
     630double                  ?=?(  double &, double ), ?=?(  volatile double &, double ),
     631                        ?*=?( double &, double ), ?*=?( volatile double &, double ),
     632                        ?/=?( double &, double ), ?/=?( volatile double &, double ),
     633                        ?+=?( double &, double ), ?+=?( volatile double &, double ),
     634                        ?-=?( double &, double ), ?-=?( volatile double &, double );
     635
     636long double             ?=?(  long double &, long double ), ?=?(  volatile long double &, long double ),
     637                        ?*=?( long double &, long double ), ?*=?( volatile long double &, long double ),
     638                        ?/=?( long double &, long double ), ?/=?( volatile long double &, long double ),
     639                        ?+=?( long double &, long double ), ?+=?( volatile long double &, long double ),
     640                        ?-=?( long double &, long double ), ?-=?( volatile long double &, long double );
     641
     642float _Complex          ?=?(  float _Complex &, float _Complex ), ?=?(  volatile float _Complex &, float _Complex ),
     643                        ?*=?( float _Complex &, float _Complex ), ?*=?( volatile float _Complex &, float _Complex ),
     644                        ?/=?( float _Complex &, float _Complex ), ?/=?( volatile float _Complex &, float _Complex ),
     645                        ?+=?( float _Complex &, float _Complex ), ?+=?( volatile float _Complex &, float _Complex ),
     646                        ?-=?( float _Complex &, float _Complex ), ?-=?( volatile float _Complex &, float _Complex );
     647
     648double _Complex         ?=?(  double _Complex &, double _Complex ), ?=?(  volatile double _Complex &, double _Complex ),
     649                        ?*=?( double _Complex &, double _Complex ), ?*=?( volatile double _Complex &, double _Complex ),
     650                        ?/=?( double _Complex &, double _Complex ), ?/=?( volatile double _Complex &, double _Complex ),
     651                        ?+=?( double _Complex &, double _Complex ), ?+=?( volatile double _Complex &, double _Complex ),
     652                        ?-=?( double _Complex &, double _Complex ), ?-=?( volatile double _Complex &, double _Complex );
     653
     654long double _Complex    ?=?(  long double _Complex &, long double _Complex ), ?=?(  volatile long double _Complex &, long double _Complex ),
     655                        ?*=?( long double _Complex &, long double _Complex ), ?*=?( volatile long double _Complex &, long double _Complex ),
     656                        ?/=?( long double _Complex &, long double _Complex ), ?/=?( volatile long double _Complex &, long double _Complex ),
     657                        ?+=?( long double _Complex &, long double _Complex ), ?+=?( volatile long double _Complex &, long double _Complex ),
     658                        ?-=?( long double _Complex &, long double _Complex ), ?-=?( volatile long double _Complex &, long double _Complex );
    659659
    660660
     
    669669
    670670// default ctor
    671 void    ?{}( _Bool * );
    672 void    ?{}( char * );
    673 void    ?{}( unsigned char * );
    674 void    ?{}( char signed * );
    675 void    ?{}( int short * );
    676 void    ?{}( int short unsigned * );
    677 void    ?{}( signed int * );
    678 void    ?{}( unsigned int * );
    679 void    ?{}( signed long int * );
    680 void    ?{}( unsigned long int * );
    681 void    ?{}( signed long long int * );
    682 void    ?{}( unsigned long long int * );
    683 void    ?{}( float * );
    684 void    ?{}( double * );
    685 void    ?{}( long double * );
    686 void    ?{}( float _Complex * );
    687 void    ?{}( double _Complex * );
    688 void    ?{}( long double _Complex * );
    689 void    ?{}( zero_t * );
    690 void    ?{}( one_t * );
     671void    ?{}( _Bool & );
     672void    ?{}( char & );
     673void    ?{}( unsigned char & );
     674void    ?{}( char signed & );
     675void    ?{}( int short & );
     676void    ?{}( int short unsigned & );
     677void    ?{}( signed int & );
     678void    ?{}( unsigned int & );
     679void    ?{}( signed long int & );
     680void    ?{}( unsigned long int & );
     681void    ?{}( signed long long int & );
     682void    ?{}( unsigned long long int & );
     683void    ?{}( float & );
     684void    ?{}( double & );
     685void    ?{}( long double & );
     686void    ?{}( float _Complex & );
     687void    ?{}( double _Complex & );
     688void    ?{}( long double _Complex & );
     689void    ?{}( zero_t & );
     690void    ?{}( one_t & );
    691691
    692692// copy ctor
    693 void    ?{}( _Bool *, _Bool );
    694 void    ?{}( char *, char );
    695 void    ?{}( unsigned char *, unsigned char );
    696 void    ?{}( char signed *, char signed );
    697 void    ?{}( int short *, int short );
    698 void    ?{}( int short unsigned *, int short unsigned );
    699 void    ?{}( signed int *, signed int);
    700 void    ?{}( unsigned int *, unsigned int);
    701 void    ?{}( signed long int *, signed long int);
    702 void    ?{}( unsigned long int *, unsigned long int);
    703 void    ?{}( signed long long int *, signed long long int);
    704 void    ?{}( unsigned long long int *, unsigned long long int);
    705 void    ?{}( float *, float);
    706 void    ?{}( double *, double);
    707 void    ?{}( long double *, long double);
    708 void    ?{}( float _Complex *, float _Complex);
    709 void    ?{}( double _Complex *, double _Complex);
    710 void    ?{}( long double _Complex *, long double _Complex);
    711 void    ?{}( zero_t *, zero_t );
    712 void    ?{}( one_t *, one_t );
     693void    ?{}( _Bool &, _Bool );
     694void    ?{}( char &, char );
     695void    ?{}( unsigned char &, unsigned char );
     696void    ?{}( char signed &, char signed );
     697void    ?{}( int short &, int short );
     698void    ?{}( int short unsigned &, int short unsigned );
     699void    ?{}( signed int &, signed int);
     700void    ?{}( unsigned int &, unsigned int);
     701void    ?{}( signed long int &, signed long int);
     702void    ?{}( unsigned long int &, unsigned long int);
     703void    ?{}( signed long long int &, signed long long int);
     704void    ?{}( unsigned long long int &, unsigned long long int);
     705void    ?{}( float &, float);
     706void    ?{}( double &, double);
     707void    ?{}( long double &, long double);
     708void    ?{}( float _Complex &, float _Complex);
     709void    ?{}( double _Complex &, double _Complex);
     710void    ?{}( long double _Complex &, long double _Complex);
     711void    ?{}( zero_t &, zero_t );
     712void    ?{}( one_t &, one_t );
    713713
    714714// dtor
    715 void    ^?{}( _Bool * );
    716 void    ^?{}( char * );
    717 void    ^?{}( char unsigned * );
    718 void    ^?{}( char signed * );
    719 void    ^?{}( int short * );
    720 void    ^?{}( int short unsigned * );
    721 void    ^?{}( signed int * );
    722 void    ^?{}( unsigned int * );
    723 void    ^?{}( signed long int * );
    724 void    ^?{}( unsigned long int * );
    725 void    ^?{}( signed long long int * );
    726 void    ^?{}( unsigned long long int * );
    727 void    ^?{}( float * );
    728 void    ^?{}( double * );
    729 void    ^?{}( long double * );
    730 void    ^?{}( float _Complex * );
    731 void    ^?{}( double _Complex * );
    732 void    ^?{}( long double _Complex * );
    733 void    ^?{}( zero_t * );
    734 void    ^?{}( one_t * );
     715void    ^?{}( _Bool & );
     716void    ^?{}( char & );
     717void    ^?{}( char unsigned & );
     718void    ^?{}( char signed & );
     719void    ^?{}( int short & );
     720void    ^?{}( int short unsigned & );
     721void    ^?{}( signed int & );
     722void    ^?{}( unsigned int & );
     723void    ^?{}( signed long int & );
     724void    ^?{}( unsigned long int & );
     725void    ^?{}( signed long long int & );
     726void    ^?{}( unsigned long long int & );
     727void    ^?{}( float & );
     728void    ^?{}( double & );
     729void    ^?{}( long double & );
     730void    ^?{}( float _Complex & );
     731void    ^?{}( double _Complex & );
     732void    ^?{}( long double _Complex & );
     733void    ^?{}( zero_t & );
     734void    ^?{}( one_t & );
    735735
    736736// // default ctor
     
    754754// copied from assignment section
    755755// copy constructors
    756 forall( ftype FT ) void ?{}( FT **, FT * );
    757 forall( ftype FT ) void ?{}( FT * volatile *, FT * );
    758 
    759 forall( dtype DT ) void ?{}(                 DT *          *,                   DT * );
    760 forall( dtype DT ) void ?{}( const           DT *          *,                   DT * );
    761 forall( dtype DT ) void ?{}( const           DT *          *, const             DT * );
    762 forall( dtype DT ) void ?{}(       volatile  DT *          *,                   DT * );
    763 forall( dtype DT ) void ?{}(       volatile  DT *          *,       volatile    DT * );
    764 
    765 forall( dtype DT ) void ?{}( const volatile  DT *          *,                   DT * );
    766 forall( dtype DT ) void ?{}( const volatile  DT *          *, const             DT * );
    767 forall( dtype DT ) void ?{}( const volatile  DT *          *,       volatile    DT * );
    768 forall( dtype DT ) void ?{}( const volatile  DT *          *, const volatile    DT * );
    769 
    770 forall( dtype DT ) void ?{}(                 DT *          *,                   void * );
    771 forall( dtype DT ) void ?{}( const           DT *          *,                   void * );
    772 forall( dtype DT ) void ?{}( const           DT *          *, const             void * );
    773 forall( dtype DT ) void ?{}(       volatile  DT *          *,                   void * );
    774 forall( dtype DT ) void ?{}(       volatile  DT *          *,       volatile    void * );
    775 
    776 forall( dtype DT ) void ?{}( const volatile  DT *          *,                   void * );
    777 forall( dtype DT ) void ?{}( const volatile  DT *          *, const             void * );
    778 forall( dtype DT ) void ?{}( const volatile  DT *          *,       volatile    void * );
    779 forall( dtype DT ) void ?{}( const volatile  DT *          *, const volatile    void * );
    780 
    781 forall( dtype DT ) void ?{}(                 void *          *,                 DT * );
    782 forall( dtype DT ) void ?{}( const           void *          *,                 DT * );
    783 forall( dtype DT ) void ?{}( const           void *          *, const           DT * );
    784 forall( dtype DT ) void ?{}(        volatile void *          *,                 DT * );
    785 forall( dtype DT ) void ?{}(        volatile void *          *,       volatile  DT * );
    786 forall( dtype DT ) void ?{}( const volatile void *           *,                 DT * );
    787 forall( dtype DT ) void ?{}( const volatile void *           *, const           DT * );
    788 forall( dtype DT ) void ?{}( const volatile void *           *,       volatile  DT * );
    789 forall( dtype DT ) void ?{}( const volatile void *           *, const volatile  DT * );
    790 
    791 void    ?{}(                void *          *,                void * );
    792 void    ?{}( const          void *          *,                void * );
    793 void    ?{}( const          void *          *, const          void * );
    794 void    ?{}(       volatile void *          *,                void * );
    795 void    ?{}(       volatile void *          *,       volatile void * );
    796 void    ?{}( const volatile void *          *,                void * );
    797 void    ?{}( const volatile void *          *, const          void * );
    798 void    ?{}( const volatile void *          *,       volatile void * );
    799 void    ?{}( const volatile void *          *, const volatile void * );
    800 
    801 // //forall( dtype DT ) void ?{}(                   DT *          *, zero_t );
    802 // //forall( dtype DT ) void ?{}(                   DT * volatile *, zero_t );
    803 // forall( dtype DT ) void ?{}( const       DT *          *, zero_t );
    804 // //forall( dtype DT ) void ?{}( volatile          DT *          *, zero_t );
    805 // //forall( dtype DT ) void ?{}( volatile          DT * volatile *, zero_t );
    806 // forall( dtype DT ) void ?{}( const volatile DT *       *, zero_t );
    807 
    808 // forall( ftype FT ) void      ?{}( FT *          *, zero_t );
     756forall( ftype FT ) void ?{}( FT *&, FT * );
     757forall( ftype FT ) void ?{}( FT * volatile &, FT * );
     758
     759forall( dtype DT ) void ?{}(                 DT *          &,                   DT * );
     760forall( dtype DT ) void ?{}( const           DT *          &,                   DT * );
     761forall( dtype DT ) void ?{}( const           DT *          &, const             DT * );
     762forall( dtype DT ) void ?{}(       volatile  DT *          &,                   DT * );
     763forall( dtype DT ) void ?{}(       volatile  DT *          &,       volatile    DT * );
     764
     765forall( dtype DT ) void ?{}( const volatile  DT *          &,                   DT * );
     766forall( dtype DT ) void ?{}( const volatile  DT *          &, const             DT * );
     767forall( dtype DT ) void ?{}( const volatile  DT *          &,       volatile    DT * );
     768forall( dtype DT ) void ?{}( const volatile  DT *          &, const volatile    DT * );
     769
     770forall( dtype DT ) void ?{}(                 DT *          &,                   void * );
     771forall( dtype DT ) void ?{}( const           DT *          &,                   void * );
     772forall( dtype DT ) void ?{}( const           DT *          &, const             void * );
     773forall( dtype DT ) void ?{}(       volatile  DT *          &,                   void * );
     774forall( dtype DT ) void ?{}(       volatile  DT *          &,       volatile    void * );
     775
     776forall( dtype DT ) void ?{}( const volatile  DT *          &,                   void * );
     777forall( dtype DT ) void ?{}( const volatile  DT *          &, const             void * );
     778forall( dtype DT ) void ?{}( const volatile  DT *          &,       volatile    void * );
     779forall( dtype DT ) void ?{}( const volatile  DT *          &, const volatile    void * );
     780
     781forall( dtype DT ) void ?{}(                 void *          &,                 DT * );
     782forall( dtype DT ) void ?{}( const           void *          &,                 DT * );
     783forall( dtype DT ) void ?{}( const           void *          &, const           DT * );
     784forall( dtype DT ) void ?{}(        volatile void *          &,                 DT * );
     785forall( dtype DT ) void ?{}(        volatile void *          &,       volatile  DT * );
     786forall( dtype DT ) void ?{}( const volatile void *           &,                 DT * );
     787forall( dtype DT ) void ?{}( const volatile void *           &, const           DT * );
     788forall( dtype DT ) void ?{}( const volatile void *           &,       volatile  DT * );
     789forall( dtype DT ) void ?{}( const volatile void *           &, const volatile  DT * );
     790
     791void    ?{}(                void *          &,                void * );
     792void    ?{}( const          void *          &,                void * );
     793void    ?{}( const          void *          &, const          void * );
     794void    ?{}(       volatile void *          &,                void * );
     795void    ?{}(       volatile void *          &,       volatile void * );
     796void    ?{}( const volatile void *          &,                void * );
     797void    ?{}( const volatile void *          &, const          void * );
     798void    ?{}( const volatile void *          &,       volatile void * );
     799void    ?{}( const volatile void *          &, const volatile void * );
     800
     801//forall( dtype DT ) void ?{}(              DT *          &, forall( dtype DT2 ) const DT2 * );
     802//forall( dtype DT ) void ?{}(              DT * volatile &, forall( dtype DT2 ) const DT2 * );
     803forall( dtype DT ) void ?{}( const          DT *          &, forall( dtype DT2 ) const DT2 * );
     804//forall( dtype DT ) void ?{}( volatile     DT *          &, forall( dtype DT2 ) const DT2 * );
     805//forall( dtype DT ) void ?{}( volatile     DT * volatile &, forall( dtype DT2 ) const DT2 * );
     806forall( dtype DT ) void ?{}( const volatile DT *          &, forall( dtype DT2 ) const DT2 * );
     807
     808forall( ftype FT ) void ?{}( FT *          &, forall( ftype FT2 ) FT2 * );
    809809
    810810// default ctors
    811 forall( ftype FT ) void ?{}( FT *          * );
    812 
    813 forall( dtype DT ) void ?{}(                 DT *          *);
    814 forall( dtype DT ) void ?{}( const           DT *          *);
    815 forall( dtype DT ) void ?{}(       volatile  DT *          *);
    816 forall( dtype DT ) void ?{}( const volatile  DT *          *);
    817 
    818 void    ?{}(                void *          *);
    819 void    ?{}( const          void *          *);
    820 void    ?{}(       volatile void *          *);
    821 void    ?{}( const volatile void *          *);
     811forall( ftype FT ) void ?{}( FT *          & );
     812
     813forall( dtype DT ) void ?{}(                 DT *          &);
     814forall( dtype DT ) void ?{}( const           DT *          &);
     815forall( dtype DT ) void ?{}(       volatile  DT *          &);
     816forall( dtype DT ) void ?{}( const volatile  DT *          &);
     817
     818void    ?{}(                void *          &);
     819void    ?{}( const          void *          &);
     820void    ?{}(       volatile void *          &);
     821void    ?{}( const volatile void *          &);
    822822
    823823// dtors
    824 forall( ftype FT ) void ^?{}( FT *         * );
    825 
    826 forall( dtype DT ) void ^?{}(                DT *          *);
    827 forall( dtype DT ) void ^?{}( const          DT *          *);
    828 forall( dtype DT ) void ^?{}(      volatile  DT *          *);
    829 forall( dtype DT ) void ^?{}( const volatile  DT *         *);
    830 
    831 void    ^?{}(               void *          *);
    832 void    ^?{}( const         void *          *);
    833 void    ^?{}(      volatile void *          *);
    834 void    ^?{}( const volatile void *         *);
     824forall( ftype FT ) void ^?{}( FT *         & );
     825
     826forall( dtype DT ) void ^?{}(                DT *          &);
     827forall( dtype DT ) void ^?{}( const          DT *          &);
     828forall( dtype DT ) void ^?{}(      volatile  DT *          &);
     829forall( dtype DT ) void ^?{}( const volatile  DT *         &);
     830
     831void    ^?{}(               void *          &);
     832void    ^?{}( const         void *          &);
     833void    ^?{}(      volatile void *          &);
     834void    ^?{}( const volatile void *         &);
    835835
    836836// Local Variables: //
Note: See TracChangeset for help on using the changeset viewer.