mirror hosted by tehsausage.com
PTypes: cset

C++ Portable Types Library (PTypes) Version 2.1


Top: Basic types: cset

The character set class (cset) implements Pascal-style set of integer values from 0 to 255, or set of characters. Unlike Pascal sets, the range of a cset cannot be changed and is always 0 through 255. Cset class implements various operators (membership, union, intersection, equality, less than or equal to, etc.) as they are described in the Pascal language. See Operators for details.

Cset is a packed array of 256 bits, it occupies 32 bytes of static or local memory. Each bit indicates whether the corresponding character is a member of a given set.

Another difference between cset and Pascal sets is that since C++ compiler does not have a built-in set constructor like the one in Pascal (e.g. ['A'..'Z', 'a'..'z']), cset provides a simple run-time interpreter instead (see Constructors).

The cset class is declared in <ptypes.h>.

The example below shows the general usage of character sets.

cset s = "A-Za-z!";       // same as ['A'..'Z', 'a'..'z', '!'] in Pascal

include(s, '_');          // include underscore character
include(s, '0', '9');     // include all chars from '0' to '9'

if ('a' & s)              // check membership
    cout << "Letter 'a' found in the set! :)\n";

const cset letters = "A-Za-z_";     // define a set of letters
string tok = pin.token(letters);    // read a token from the input stream

See also: Constructors, Operators, Manipulation


PTypes home