Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/collections/string.hfa

    re8b3717 r416b443  
    1010// Created On       : Fri Sep 03 11:00:00 2021
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Jan 14 12:03:46 2024
    13 // Update Count     : 81
     12// Last Modified On : Sat Sep  2 11:26:28 2023
     13// Update Count     : 55
    1414//
    1515
     
    2929// Getters
    3030size_t size(const string & s);
    31 static inline size_t strlen(const string & s) { return size( s ); }
    3231
    3332// RAII, assignment
    34 void ?{}(string & s); // empty string
     33void ?{}(string & this); // empty string
     34void ?{}(string & s, const char * initial); // copy from string literal (NULL-terminated)
     35void ?{}(string & s, const char * buffer, size_t bsize); // copy specific length from buffer
     36
    3537void ?{}(string & s, const string & s2);
    36 void ?{}(string & s, const string & s2, size_t maxlen);
    3738void ?{}(string & s, string & s2);
    3839
    39 void ?{}(string & s, char);
    40 void ?{}(string & s, const char * c); // copy from string literal (NULL-terminated)
    41 void ?{}(string & s, const char * c, size_t size); // copy specific length from buffer
    42 
    43 void ?=?(string & s, const char * c); // copy assignment from literal
    44 void ?=?(string & s, const string & c);
    45 void ?=?(string & s, char c);
    46 string & ?=?(string & s, string & c);  // surprising ret seems to help avoid calls to autogen
    47 void assign(string & s, const string & c, size_t n);
    48 void assign(string & s, const char * c, size_t n);
     40void ?=?(string & s, const char * other); // copy assignment from literal
     41void ?=?(string & s, const string & other);
     42void ?=?(string & s, char other);
     43string & ?=?(string & s, string & other);  // surprising ret seems to help avoid calls to autogen
    4944//string ?=?( string &, string ) = void;
    50 
    51 static inline string & strcpy(string & s, const char * c) { s = c; return s; }
    52 static inline string & strncpy(string & s, const char * c, size_t n) { assign( s, c, n); return s; }
    53 static inline string & strcpy(string & s, const string & c) { s = c; return s; }
    54 static inline string & strncpy(string & s, const string & c, size_t n) { assign(s, c, n); return s; }
    55 
    5645void ^?{}(string & s);
    5746
     
    6049    string * s;
    6150};
    62 string_WithSharedEdits ?`shareEdits( string & s );
    63 void ?{}( string & s, string_WithSharedEdits src );
     51string_WithSharedEdits ?`shareEdits( string & this );
     52void ?{}( string & this, string_WithSharedEdits src );
    6453
    6554// IO Operator
     
    6756void ?|?(ofstream & out, const string & s);
    6857ifstream & ?|?(ifstream & in, string & s);
    69 void ?|?( ifstream & in, string & s );
     58void ?|?( ifstream & in, string & this );
    7059
    7160static inline {
     
    9281        _Istream_Sstr wdi( unsigned int rwd, string & s ) { return (_Istream_Sstr)@{ s, {{0p}, rwd, {.flags.rwd : true}} }; }
    9382        _Istream_Sstr getline( string & s, const char delimiter = '\n' ) {
    94                 return (_Istream_Sstr)@{ s, {{.delimiters : { delimiter, '\0' } }, -1, {.flags.delimiter : true, .flags.inex : true}} };
     83                return (_Istream_Sstr)@{ s, {{.delimiter : { delimiter, '\0' } }, -1, {.flags.delimiter : true, .flags.inex : true}} };
    9584        }
    9685        _Istream_Sstr & getline( _Istream_Sstr & fmt, const char delimiter = '\n' ) {
    97                 fmt.delimiters[0] = delimiter; fmt.delimiters[1] = '\0'; fmt.flags.delimiter = true; fmt.flags.inex = true; return fmt;
     86                fmt.delimiter[0] = delimiter; fmt.delimiter[1] = '\0'; fmt.flags.delimiter = true; fmt.flags.inex = true; return fmt;
    9887        }
    9988        _Istream_Sstr incl( const char scanset[], string & s ) { return (_Istream_Sstr)@{ s, {{scanset}, -1, {.flags.inex : false}} }; }
     
    10897
    10998// Concatenation
    110 void ?+=?(string & s, char c); // append a character
     99void ?+=?(string & s, char other); // append a character
    111100void ?+=?(string & s, const string & s2); // append-concatenate to first string
    112 void append(string & s, const string & s2, size_t maxlen);  // append-concatenate to first string, up to maxlen
    113 void ?+=?(string & s, const char * s2); // append-concatenate NULL-terminated string to first string
    114 void append(string & s, const char * buffer, size_t bsize);  // append-concatenate given range to first string
    115 
    116 string ?+?(const string & s, char c); // add a character to a copy of the string
     101void ?+=?(string & s, const char * other); // append-concatenate to first string
     102string ?+?(const string & s, char other); // add a character to a copy of the string
    117103string ?+?(const string & s, const string & s2); // copy and concatenate both strings
    118 string ?+?(const char * s1, const char * s2); // copy and concatenate both strings
    119 string ?+?(const string & s, const char * c); // copy and concatenate with NULL-terminated string
    120 
    121 static inline string & strcat(string & s, const string & s2) { s += s2; return s; }
    122 static inline string & strcat(string & s, const char * c) { s += c; return s; }
    123 static inline string & strncat(string & s, const string & s2, size_t maxlen) { append(s, s2, maxlen); return s; }
    124 static inline string & strncat(string & s, const char * buffer, size_t bsize) { append(s, buffer, bsize); return s; }
     104string ?+?(const char * s1, const char * s2); // concatenate both strings
     105string ?+?(const string & s, const char * other); // copy and concatenate with NULL-terminated string
    125106
    126107// Repetition
    127108string ?*?(const string & s, size_t factor);
    128 void ?*=?(string & s, size_t factor);
    129 string ?*?(char c, size_t factor);
    130 string ?*?(const char *s, size_t factor);
     109string ?*?(char c, size_t size);
     110string ?*?(const char *s, size_t size);
    131111
    132112// Character access
     
    136116
    137117// Comparisons
    138 int  strcmp (const string &, const string &);
     118int  cmp (const string &, const string &);
    139119bool ?==?(const string &, const string &);
    140120bool ?!=?(const string &, const string &);
     
    144124bool ?<? (const string &, const string &);
    145125
    146 int  strcmp (const string &, const char *);
    147 bool ?==?(const string &, const char *);
    148 bool ?!=?(const string &, const char *);
    149 bool ?>? (const string &, const char *);
    150 bool ?>=?(const string &, const char *);
    151 bool ?<=?(const string &, const char *);
    152 bool ?<? (const string &, const char *);
    153 
    154 int  strcmp (const char *, const string &);
    155 bool ?==?(const char *, const string &);
    156 bool ?!=?(const char *, const string &);
    157 bool ?>? (const char *, const string &);
    158 bool ?>=?(const char *, const string &);
    159 bool ?<=?(const char *, const string &);
    160 bool ?<? (const char *, const string &);
     126int  cmp (const string &, const char*);
     127bool ?==?(const string &, const char*);
     128bool ?!=?(const string &, const char*);
     129bool ?>? (const string &, const char*);
     130bool ?>=?(const string &, const char*);
     131bool ?<=?(const string &, const char*);
     132bool ?<? (const string &, const char*);
     133
     134int  cmp (const char*, const string &);
     135bool ?==?(const char*, const string &);
     136bool ?!=?(const char*, const string &);
     137bool ?>? (const char*, const string &);
     138bool ?>=?(const char*, const string &);
     139bool ?<=?(const char*, const string &);
     140bool ?<? (const char*, const string &);
    161141
    162142
    163143// Slicing
    164 string ?()( string & s, size_t start, size_t len );  // TODO const?
    165 string ?()( string & s, size_t start);
     144string ?()( string & this, size_t start, size_t end );  // TODO const?
     145string ?()( string & this, size_t start);
    166146
    167147// String search
     
    197177
    198178
     179
    199180struct charclass {
    200181    charclass_res * inner;
Note: See TracChangeset for help on using the changeset viewer.