Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/libcfa/stdlib.c

    r707446a rc3ebf37  
    1010// Created On       : Thu Jan 28 17:10:29 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Apr  1 18:31:26 2017
    13 // Update Count     : 181
     12// Last Modified On : Thu Feb 23 23:27:02 2017
     13// Update Count     : 171
    1414//
    1515
     
    9191}
    9292
    93 forall( dtype T, ttype Params | { void ^?{}(T *); void delete(Params); } )
    94 void delete( T * ptr, Params rest ) {
    95         if ( ptr ) {
    96                 ^ptr{};
    97                 free( ptr );
    98         }
    99         delete( rest );
    100 }
    101 
    10293//---------------------------------------
    10394
     
    225216        int comp( const void * t1, const void * t2 ) { return *(T *)t1 < *(T *)t2 ? -1 : *(T *)t2 < *(T *)t1 ? 1 : 0; }
    226217        return (T *)bsearch( &key, arr, dimension, sizeof(T), comp );
    227 } // bsearch
    228 
    229 forall( otype T | { int ?<?( T, T ); } )
    230 unsigned int bsearch( T key, const T * arr, size_t dimension ) {
    231         int comp( const void * t1, const void * t2 ) { return *(T *)t1 < *(T *)t2 ? -1 : *(T *)t2 < *(T *)t1 ? 1 : 0; }
    232         T *result = (T *)bsearch( &key, arr, dimension, sizeof(T), comp );
    233         return result ? result - arr : dimension;                       // pointer subtraction includes sizeof(T)
    234218} // bsearch
    235219
Note: See TracChangeset for help on using the changeset viewer.