Changeset 9c23f31 for src/libcfa


Ignore:
Timestamp:
Sep 24, 2016, 12:19:33 PM (9 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, stuck-waitfor-destruct, with_gc
Children:
3b5e3aa
Parents:
2298f728 (diff), 7ae930a (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

fix conflicts

Location:
src/libcfa
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/libcfa/containers/vector

    r2298f728 r9c23f31  
    2020}
    2121
    22 #define DESTROY(x)
    23 
    2422//------------------------------------------------------------------------------
    2523//Declaration
    2624trait allocator_c(otype T, otype allocator_t)
    2725{
    28         void ctor(allocator_t* const);
    29         void dtor(allocator_t* const);
    30         void realloc_storage(allocator_t* const, size_t);
    31         T* data(allocator_t* const);
     26        void realloc_storage(allocator_t*, size_t);
     27        T* data(allocator_t*);
    3228};
     29
     30forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
     31struct vector;
     32
     33//------------------------------------------------------------------------------
     34//Initialization
     35forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
     36void ?{}(vector(T, allocator_t)* this);
     37
     38forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
     39void ?{}(vector(T, allocator_t)* this, vector(T, allocator_t) rhs);
     40
     41forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
     42vector(T, allocator_t) ?=?(vector(T, allocator_t)* this, vector(T, allocator_t) rhs);
     43
     44forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
     45void ^?{}(vector(T, allocator_t)* this);
    3346
    3447forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
     
    4053
    4154//------------------------------------------------------------------------------
    42 //Initialization
    43 forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    44 void ctor(vector(T, allocator_t) *const this);
    45 
    46 forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    47 void dtor(vector(T, allocator_t) *const this);
    48 
    49 //------------------------------------------------------------------------------
    5055//Capacity
    5156forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    52 static inline bool empty(vector(T, allocator_t) *const this)
     57static inline bool empty(vector(T, allocator_t)* this)
    5358{
    5459        return this->size == 0;
     
    5661
    5762forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    58 static inline size_t size(vector(T, allocator_t) *const this)
     63static inline size_t size(vector(T, allocator_t)* this)
    5964{
    6065        return this->size;
     
    6267
    6368forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    64 static inline void reserve(vector(T, allocator_t) *const this, size_t size)
     69static inline void reserve(vector(T, allocator_t)* this, size_t size)
    6570{
    6671        realloc_storage(&this->storage, this->size+1);
     
    7075//Element access
    7176forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    72 static inline T at(vector(T, allocator_t) *const this, size_t index)
     77static inline T at(vector(T, allocator_t)* this, size_t index)
    7378{
    7479        return data(&this->storage)[index];
     
    7681
    7782forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    78 static inline T ?[?](vector(T, allocator_t) *const this, size_t index)
     83static inline T ?[?](vector(T, allocator_t)* this, size_t index)
    7984{
    8085        return data(&this->storage)[index];
     
    8287
    8388forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    84 static inline T front(vector(T, allocator_t) *const this)
     89static inline T front(vector(T, allocator_t)* this)
    8590{
    8691        return data(&this->storage)[0];
     
    8893
    8994forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    90 static inline T back(vector(T, allocator_t) *const this)
     95static inline T back(vector(T, allocator_t)* this)
    9196{
    9297        return data(&this->storage)[this->size - 1];
     
    96101//Modifiers
    97102forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    98 void push_back(vector(T, allocator_t) *const this, T value);
     103void push_back(vector(T, allocator_t)* this, T value);
    99104
    100105forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    101 void pop_back(vector(T, allocator_t) *const this);
     106void pop_back(vector(T, allocator_t)* this);
    102107
    103108forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    104 void clear(vector(T, allocator_t) *const this);
     109void clear(vector(T, allocator_t)* this);
    105110
    106111//------------------------------------------------------------------------------
    107112//Iterators
    108113forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    109 static inline T* begin(vector(T, allocator_t) *const this)
     114static inline T* begin(vector(T, allocator_t)* this)
    110115{
    111116        return data(&this->storage);
     
    113118
    114119forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    115 static inline const T* cbegin(const vector(T, allocator_t) *const this)
     120static inline const T* cbegin(const vector(T, allocator_t)* this)
    116121{
    117122        return data(&this->storage);
     
    119124
    120125forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    121 static inline T* end(vector(T, allocator_t) *const this)
     126static inline T* end(vector(T, allocator_t)* this)
    122127{
    123128        return data(&this->storage) + this->size;
     
    125130
    126131forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    127 static inline const T* cend(const vector(T, allocator_t) *const this)
     132static inline const T* cend(const vector(T, allocator_t)* this)
    128133{
    129134        return data(&this->storage) + this->size;
     
    140145
    141146forall(otype T)
    142 void ctor(heap_allocator(T) *const this);
     147void ?{}(heap_allocator(T)* this);
    143148
    144149forall(otype T)
    145 void dtor(heap_allocator(T) *const this);
     150void ?{}(heap_allocator(T)* this, heap_allocator(T) rhs);
    146151
    147152forall(otype T)
    148 void realloc_storage(heap_allocator(T) *const this, size_t size);
     153heap_allocator(T) ?=?(heap_allocator(T)* this, heap_allocator(T) rhs);
    149154
    150155forall(otype T)
    151 static inline T* data(heap_allocator(T) *const this)
     156void ^?{}(heap_allocator(T)* this);
     157
     158forall(otype T)
     159void realloc_storage(heap_allocator(T)* this, size_t size);
     160
     161forall(otype T)
     162static inline T* data(heap_allocator(T)* this)
    152163{
    153164        return this->storage;
  • src/libcfa/containers/vector.c

    r2298f728 r9c23f31  
    1818#include <stdlib>
    1919
     20forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
     21void copy_internal(vector(T, allocator_t)* this, vector(T, allocator_t)* other);
     22
    2023//------------------------------------------------------------------------------
    2124//Initialization
    2225forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    23 void ctor(vector(T, allocator_t) *const this)
     26void ?{}(vector(T, allocator_t)* this)
    2427{
    25         ctor(&this->storage);
     28        (&this->storage){};
    2629        this->size = 0;
    2730}
    2831
    2932forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    30 void dtor(vector(T, allocator_t) *const this)
     33void ?{}(vector(T, allocator_t)* this, vector(T, allocator_t) rhs)
     34{
     35        (&this->storage){ rhs.storage };
     36        copy_internal(this, &rhs);
     37}
     38
     39// forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
     40// vector(T, allocator_t) ?=?(vector(T, allocator_t)* this, vector(T, allocator_t) rhs)
     41// {
     42//      (&this->storage){};
     43//      copy_internal(this, &rhs);
     44//      return *this;
     45// }
     46
     47forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
     48void ^?{}(vector(T, allocator_t)* this)
    3149{
    3250        clear(this);
    33         dtor(&this->storage);
     51        ^(&this->storage){};
    3452}
    3553
     
    3755//Modifiers
    3856forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    39 void push_back(vector(T, allocator_t) *const this, T value)
     57void push_back(vector(T, allocator_t)* this, T value)
    4058{
    4159        realloc_storage(&this->storage, this->size+1);
     
    4563
    4664forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    47 void pop_back(vector(T, allocator_t) *const this)
     65void pop_back(vector(T, allocator_t)* this)
    4866{
    4967        this->size--;
    50         DESTROY(data(&this->storage)[this->size]);
     68        ^(&data(&this->storage)[this->size]){};
    5169}
    5270
    5371forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
    54 void clear(vector(T, allocator_t) *const this)
     72void clear(vector(T, allocator_t)* this)
    5573{
    5674        for(size_t i = 0; i < this->size; i++)
    5775        {
    58                 DESTROY(data(&this->storage)[this->size]);
     76                ^(&data(&this->storage)[this->size]){};
    5977        }
    6078        this->size = 0;
     
    6280
    6381//------------------------------------------------------------------------------
     82//Internal Helpers
     83
     84forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
     85void copy_internal(vector(T, allocator_t)* this, vector(T, allocator_t)* other)
     86{
     87        this->size = other->size;
     88        for(size_t i = 0; i < this->size; i++) {
     89                (&data(&this->storage)[this->size]){ data(&other->storage)[other->size] };
     90        }
     91}
     92
     93//------------------------------------------------------------------------------
    6494//Allocator
    6595forall(otype T)
    66 void ctor(heap_allocator(T) *const this)
     96void ?{}(heap_allocator(T)* this)
    6797{
    6898        this->storage = 0;
     
    71101
    72102forall(otype T)
    73 void dtor(heap_allocator(T) *const this)
     103void ?{}(heap_allocator(T)* this, heap_allocator(T) rhs)
     104{
     105        this->capacity = rhs.capacity;
     106        this->storage = (T*)realloc((void*)this->storage, this->capacity * sizeof(T));
     107}
     108
     109forall(otype T)
     110heap_allocator(T) ?=?(heap_allocator(T)* this, heap_allocator(T) rhs)
     111{
     112        this->capacity = rhs.capacity;
     113        this->storage = (T*)realloc((void*)this->storage, this->capacity * sizeof(T));
     114        return *this;
     115}
     116
     117forall(otype T)
     118void ^?{}(heap_allocator(T)* this)
    74119{
    75120        free(this->storage);
     
    77122
    78123forall(otype T)
    79 inline void realloc_storage(heap_allocator(T) *const this, size_t size)
     124inline void realloc_storage(heap_allocator(T)* this, size_t size)
    80125{
    81126        enum { GROWTH_RATE = 2 };
  • src/libcfa/prelude.cf

    r2298f728 r9c23f31  
    636636
    637637// default ctor
    638 void    ?{}( _Bool * ),                         ?{}( volatile _Bool * );
    639 void    ?{}( char * ),  ?{}( volatile char * );
    640 void    ?{}( unsigned char * ), ?{}( volatile unsigned char * );
    641 void    ?{}( char signed * ),                   ?{}( volatile char signed * );
    642 void    ?{}( int short * ),                             ?{}( volatile int short * );
    643 void    ?{}( int short unsigned * ),    ?{}( volatile int short unsigned * );
    644 void    ?{}( signed int * ),                    ?{}( volatile signed int * );
    645 void    ?{}( unsigned int * ),                  ?{}( volatile unsigned int * );
    646 void    ?{}( signed long int * ),               ?{}( volatile signed long int * );
    647 void    ?{}( unsigned long int * ),             ?{}( volatile unsigned long int * );
    648 void    ?{}( signed long long int * ),          ?{}( volatile signed long long int * );
    649 void    ?{}( unsigned long long int * ),        ?{}( volatile unsigned long long int * );
    650 void    ?{}( float * ),                         ?{}( volatile float * );
    651 void    ?{}( double * ),                        ?{}( volatile double * );
    652 void    ?{}( long double * ),                   ?{}( volatile long double * );
    653 void    ?{}( float _Complex * ),                ?{}( volatile float _Complex * );
    654 void    ?{}( double _Complex * ),               ?{}( volatile double _Complex * );
    655 void    ?{}( long double _Complex * ),          ?{}( volatile long double _Complex * );
     638void    ?{}( _Bool * );
     639void    ?{}( char * );
     640void    ?{}( unsigned char * );
     641void    ?{}( char signed * );
     642void    ?{}( int short * );
     643void    ?{}( int short unsigned * );
     644void    ?{}( signed int * );
     645void    ?{}( unsigned int * );
     646void    ?{}( signed long int * );
     647void    ?{}( unsigned long int * );
     648void    ?{}( signed long long int * );
     649void    ?{}( unsigned long long int * );
     650void    ?{}( float * );
     651void    ?{}( double * );
     652void    ?{}( long double * );
     653void    ?{}( float _Complex * );
     654void    ?{}( double _Complex * );
     655void    ?{}( long double _Complex * );
    656656
    657657// copy ctor
    658 void    ?{}( _Bool *, _Bool ),                                  ?{}( volatile _Bool *, _Bool );
    659 void    ?{}( char *, char ),    ?{}( volatile char *, char );
    660 void    ?{}( unsigned char *, unsigned char ),                  ?{}( volatile unsigned char *, unsigned char );
    661 void    ?{}( char signed *, char signed ),                      ?{}( volatile char signed *, char signed );
    662 void    ?{}( int short *, int short ),                          ?{}( volatile int short *, int short );
    663 void    ?{}( int short unsigned *, int short unsigned ),        ?{}( volatile int short unsigned *, int short unsigned );
    664 void    ?{}( signed int *, signed int),                         ?{}( volatile signed int *, signed int );
    665 void    ?{}( unsigned int *, unsigned int),                     ?{}( volatile unsigned int *, unsigned int );
    666 void    ?{}( signed long int *, signed long int),               ?{}( volatile signed long int *, signed long int );
    667 void    ?{}( unsigned long int *, unsigned long int),           ?{}( volatile unsigned long int *, unsigned long int );
    668 void    ?{}( signed long long int *, signed long long int),     ?{}( volatile signed long long int *, signed long long int );
    669 void    ?{}( unsigned long long int *, unsigned long long int), ?{}( volatile unsigned long long int *, unsigned long long int );
    670 void    ?{}( float *, float),                                   ?{}( volatile float *, float );
    671 void    ?{}( double *, double),                                 ?{}( volatile double *, double );
    672 void    ?{}( long double *, long double),                       ?{}( volatile long double *, long double );
    673 void    ?{}( float _Complex *, float _Complex),                 ?{}( volatile float _Complex *, float _Complex );
    674 void    ?{}( double _Complex *, double _Complex),               ?{}( volatile double _Complex *, double _Complex );
    675 void    ?{}( long double _Complex *, long double _Complex),     ?{}( volatile long double _Complex *, long double _Complex );
     658void    ?{}( _Bool *, _Bool );
     659void    ?{}( char *, char );
     660void    ?{}( unsigned char *, unsigned char );
     661void    ?{}( char signed *, char signed );
     662void    ?{}( int short *, int short );
     663void    ?{}( int short unsigned *, int short unsigned );
     664void    ?{}( signed int *, signed int);
     665void    ?{}( unsigned int *, unsigned int);
     666void    ?{}( signed long int *, signed long int);
     667void    ?{}( unsigned long int *, unsigned long int);
     668void    ?{}( signed long long int *, signed long long int);
     669void    ?{}( unsigned long long int *, unsigned long long int);
     670void    ?{}( float *, float);
     671void    ?{}( double *, double);
     672void    ?{}( long double *, long double);
     673void    ?{}( float _Complex *, float _Complex);
     674void    ?{}( double _Complex *, double _Complex);
     675void    ?{}( long double _Complex *, long double _Complex);
    676676
    677677// dtor
    678 void    ^?{}( _Bool * ),                        ^?{}( volatile _Bool * );
    679 void    ^?{}( char * ), ^?{}( volatile char * );
    680 void    ^?{}( char unsigned * ),                        ^?{}( volatile char unsigned * );
    681 void    ^?{}( char signed * ),                  ^?{}( volatile char signed * );
    682 void    ^?{}( int short * ),                            ^?{}( volatile int short * );
    683 void    ^?{}( int short unsigned * ),   ^?{}( volatile int short unsigned * );
    684 void    ^?{}( signed int * ),                   ^?{}( volatile signed int * );
    685 void    ^?{}( unsigned int * ),                 ^?{}( volatile unsigned int * );
    686 void    ^?{}( signed long int * ),              ^?{}( volatile signed long int * );
    687 void    ^?{}( unsigned long int * ),            ^?{}( volatile unsigned long int * );
    688 void    ^?{}( signed long long int * ),         ^?{}( volatile signed long long int * );
    689 void    ^?{}( unsigned long long int * ),       ^?{}( volatile unsigned long long int * );
    690 void    ^?{}( float * ),                        ^?{}( volatile float * );
    691 void    ^?{}( double * ),                       ^?{}( volatile double * );
    692 void    ^?{}( long double * ),                  ^?{}( volatile long double * );
    693 void    ^?{}( float _Complex * ),               ^?{}( volatile float _Complex * );
    694 void    ^?{}( double _Complex * ),              ^?{}( volatile double _Complex * );
    695 void    ^?{}( long double _Complex * ),         ^?{}( volatile long double _Complex * );
     678void    ^?{}( _Bool * );
     679void    ^?{}( char * );
     680void    ^?{}( char unsigned * );
     681void    ^?{}( char signed * );
     682void    ^?{}( int short * );
     683void    ^?{}( int short unsigned * );
     684void    ^?{}( signed int * );
     685void    ^?{}( unsigned int * );
     686void    ^?{}( signed long int * );
     687void    ^?{}( unsigned long int * );
     688void    ^?{}( signed long long int * );
     689void    ^?{}( unsigned long long int * );
     690void    ^?{}( float * );
     691void    ^?{}( double * );
     692void    ^?{}( long double * );
     693void    ^?{}( float _Complex * );
     694void    ^?{}( double _Complex * );
     695void    ^?{}( long double _Complex * );
    696696
    697697// // default ctor
     
    719719
    720720forall( dtype DT ) void ?{}(                 DT *          *,                   DT * );
    721 forall( dtype DT ) void ?{}(                 DT * volatile *,                   DT * );
    722721forall( dtype DT ) void ?{}( const           DT *          *,                   DT * );
    723 forall( dtype DT ) void ?{}( const           DT * volatile *,                   DT * );
    724722forall( dtype DT ) void ?{}( const           DT *          *, const             DT * );
    725 forall( dtype DT ) void ?{}( const           DT * volatile *, const             DT * );
    726723forall( dtype DT ) void ?{}(       volatile  DT *          *,                   DT * );
    727 forall( dtype DT ) void ?{}(       volatile  DT * volatile *,                   DT * );
    728724forall( dtype DT ) void ?{}(       volatile  DT *          *,       volatile    DT * );
    729 forall( dtype DT ) void ?{}(       volatile  DT * volatile *,       volatile    DT * );
    730725
    731726forall( dtype DT ) void ?{}( const volatile  DT *          *,                   DT * );
    732 forall( dtype DT ) void ?{}( const volatile  DT * volatile *,                   DT * );
    733727forall( dtype DT ) void ?{}( const volatile  DT *          *, const             DT * );
    734 forall( dtype DT ) void ?{}( const volatile  DT * volatile *, const             DT * );
    735728forall( dtype DT ) void ?{}( const volatile  DT *          *,       volatile    DT * );
    736 forall( dtype DT ) void ?{}( const volatile  DT * volatile *,       volatile    DT * );
    737729forall( dtype DT ) void ?{}( const volatile  DT *          *, const volatile    DT * );
    738 forall( dtype DT ) void ?{}( const volatile  DT * volatile *, const volatile    DT * );
    739730
    740731forall( dtype DT ) void ?{}(                 DT *          *,                   void * );
    741 forall( dtype DT ) void ?{}(                 DT * volatile *,                   void * );
    742732forall( dtype DT ) void ?{}( const           DT *          *,                   void * );
    743 forall( dtype DT ) void ?{}( const           DT * volatile *,                   void * );
    744733forall( dtype DT ) void ?{}( const           DT *          *, const             void * );
    745 forall( dtype DT ) void ?{}( const           DT * volatile *, const             void * );
    746734forall( dtype DT ) void ?{}(       volatile  DT *          *,                   void * );
    747 forall( dtype DT ) void ?{}(       volatile  DT * volatile *,                   void * );
    748735forall( dtype DT ) void ?{}(       volatile  DT *          *,       volatile    void * );
    749 forall( dtype DT ) void ?{}(       volatile  DT * volatile *,       volatile    void * );
    750736
    751737forall( dtype DT ) void ?{}( const volatile  DT *          *,                   void * );
    752 forall( dtype DT ) void ?{}( const volatile  DT * volatile *,                   void * );
    753738forall( dtype DT ) void ?{}( const volatile  DT *          *, const             void * );
    754 forall( dtype DT ) void ?{}( const volatile  DT * volatile *, const             void * );
    755739forall( dtype DT ) void ?{}( const volatile  DT *          *,       volatile    void * );
    756 forall( dtype DT ) void ?{}( const volatile  DT * volatile *,       volatile    void * );
    757740forall( dtype DT ) void ?{}( const volatile  DT *          *, const volatile    void * );
    758 forall( dtype DT ) void ?{}( const volatile  DT * volatile *, const volatile    void * );
    759741
    760742forall( dtype DT ) void ?{}(                 void *          *,                 DT * );
    761 forall( dtype DT ) void ?{}(                 void * volatile *,                 DT * );
    762743forall( dtype DT ) void ?{}( const           void *          *,                 DT * );
    763 forall( dtype DT ) void ?{}( const           void * volatile *,                 DT * );
    764744forall( dtype DT ) void ?{}( const           void *          *, const           DT * );
    765 forall( dtype DT ) void ?{}( const           void * volatile *, const           DT * );
    766745forall( dtype DT ) void ?{}(        volatile void *          *,                 DT * );
    767 forall( dtype DT ) void ?{}(        volatile void * volatile *,                 DT * );
    768746forall( dtype DT ) void ?{}(        volatile void *          *,       volatile  DT * );
    769 forall( dtype DT ) void ?{}(        volatile void * volatile *,       volatile  DT * );
    770747forall( dtype DT ) void ?{}( const volatile void *           *,                 DT * );
    771 forall( dtype DT ) void ?{}( const volatile void * volatile *,                  DT * );
    772748forall( dtype DT ) void ?{}( const volatile void *           *, const           DT * );
    773 forall( dtype DT ) void ?{}( const volatile void * volatile *, const            DT * );
    774749forall( dtype DT ) void ?{}( const volatile void *           *,       volatile  DT * );
    775 forall( dtype DT ) void ?{}( const volatile void * volatile *,        volatile  DT * );
    776750forall( dtype DT ) void ?{}( const volatile void *           *, const volatile  DT * );
    777 forall( dtype DT ) void ?{}( const volatile void * volatile *, const volatile   DT * );
    778751
    779752void    ?{}(                void *          *,                void * );
    780 void    ?{}(                void * volatile *,                void * );
    781753void    ?{}( const          void *          *,                void * );
    782 void    ?{}( const          void * volatile *,                void * );
    783754void    ?{}( const          void *          *, const          void * );
    784 void    ?{}( const          void * volatile *, const          void * );
    785755void    ?{}(       volatile void *          *,                void * );
    786 void    ?{}(       volatile void * volatile *,                void * );
    787756void    ?{}(       volatile void *          *,       volatile void * );
    788 void    ?{}(       volatile void * volatile *,       volatile void * );
    789757void    ?{}( const volatile void *          *,                void * );
    790 void    ?{}( const volatile void * volatile *,                void * );
    791758void    ?{}( const volatile void *          *, const          void * );
    792 void    ?{}( const volatile void * volatile *, const          void * );
    793759void    ?{}( const volatile void *          *,       volatile void * );
    794 void    ?{}( const volatile void * volatile *,       volatile void * );
    795760void    ?{}( const volatile void *          *, const volatile void * );
    796 void    ?{}( const volatile void * volatile *, const volatile void * );
    797761
    798762//forall( dtype DT ) void ?{}(              DT *          *, forall( dtype DT2 ) const DT2 * );
    799763//forall( dtype DT ) void ?{}(              DT * volatile *, forall( dtype DT2 ) const DT2 * );
    800764forall( dtype DT ) void ?{}( const          DT *          *, forall( dtype DT2 ) const DT2 * );
    801 forall( dtype DT ) void ?{}( const          DT * volatile *, forall( dtype DT2 ) const DT2 * );
    802765//forall( dtype DT ) void ?{}( volatile     DT *          *, forall( dtype DT2 ) const DT2 * );
    803766//forall( dtype DT ) void ?{}( volatile     DT * volatile *, forall( dtype DT2 ) const DT2 * );
    804767forall( dtype DT ) void ?{}( const volatile DT *          *, forall( dtype DT2 ) const DT2 * );
    805 forall( dtype DT ) void ?{}( const volatile DT * volatile *, forall( dtype DT2 ) const DT2 * );
    806768
    807769forall( ftype FT ) void ?{}( FT *          *, forall( ftype FT2 ) FT2 * );
    808 forall( ftype FT ) void ?{}( FT * volatile *, forall( ftype FT2 ) FT2 * );
    809770
    810771// default ctors
    811772forall( ftype FT ) void ?{}( FT *          * );
    812 forall( ftype FT ) void ?{}( FT * volatile * );
    813773
    814774forall( dtype DT ) void ?{}(                 DT *          *);
    815 forall( dtype DT ) void ?{}(                 DT * volatile *);
    816775forall( dtype DT ) void ?{}( const           DT *          *);
    817 forall( dtype DT ) void ?{}( const           DT * volatile *);
    818776forall( dtype DT ) void ?{}(       volatile  DT *          *);
    819 forall( dtype DT ) void ?{}(       volatile  DT * volatile *);
    820777forall( dtype DT ) void ?{}( const volatile  DT *          *);
    821 forall( dtype DT ) void ?{}( const volatile  DT * volatile *);
    822778
    823779void    ?{}(                void *          *);
    824 void    ?{}(                void * volatile *);
    825780void    ?{}( const          void *          *);
    826 void    ?{}( const          void * volatile *);
    827781void    ?{}(       volatile void *          *);
    828 void    ?{}(       volatile void * volatile *);
    829782void    ?{}( const volatile void *          *);
    830 void    ?{}( const volatile void * volatile *);
    831783
    832784// dtors
    833785forall( ftype FT ) void ^?{}( FT *         * );
    834 forall( ftype FT ) void ^?{}( FT * volatile * );
    835786
    836787forall( dtype DT ) void ^?{}(                DT *          *);
    837 forall( dtype DT ) void ^?{}(                DT * volatile *);
    838788forall( dtype DT ) void ^?{}( const          DT *          *);
    839 forall( dtype DT ) void ^?{}( const          DT * volatile *);
    840789forall( dtype DT ) void ^?{}(      volatile  DT *          *);
    841 forall( dtype DT ) void ^?{}(      volatile  DT * volatile *);
    842790forall( dtype DT ) void ^?{}( const volatile  DT *         *);
    843 forall( dtype DT ) void ^?{}( const volatile  DT * volatile *);
    844791
    845792void    ^?{}(               void *          *);
    846 void    ^?{}(               void * volatile *);
    847793void    ^?{}( const         void *          *);
    848 void    ^?{}( const         void * volatile *);
    849794void    ^?{}(      volatile void *          *);
    850 void    ^?{}(      volatile void * volatile *);
    851795void    ^?{}( const volatile void *         *);
    852 void    ^?{}( const volatile void * volatile *);
    853796
    854797// Local Variables: //
Note: See TracChangeset for help on using the changeset viewer.