Next: Tools(USL) Prev: Features(USL) Up: USL Top: Top

3.16.3. Components

The classes provided by the library are several, and they are listed here:

Included in the C++ Standard Components are the following components:

Args - a set of facilities providing more natural and convenient access to UNIX command line options and arguments than typical command line parsers.

Bits - extends built-in support for bit manipulation to arbitrary-length bitstrings. It also allows easy access to individual bits and provides additional operations such as concatenation.

Blocks - are like built-in arrays, except that their size can be adjusted dynamically. Using Blocks eliminates many of the errors programmers make when working with adjustable-size data structures.

Block Algorithms - 90 highly efficient algorithms for operating on contiguously stored data (can be used with either arrays or Blocks) including algorithms for searching, sorting, inserting, partitioning, generation, copying, and removing.

Fsm - offers a method of specifying program control flow that is useful in a wide variety of applications. Programmers define "states" and "transitions" among states that are "fired" by specific "inputs."

Graphs - three classes that can be used to maintain arbitrary relationships between arbitrary entities. Useful for semantic modeling and other "network" applications.

Graph Algorithms - Several of the most fundamental algorithms for operating on Graphs, including breadth-first and depth-first searching, cycle and component detection.

ipcstream - specializes the standard I/O architecture (iostream) to interprocess communication between clients and servers. Clients and servers communicate by writing to or reading from streams.

Lists - are doubly-linked lists. Since pointer manipulation and node allocation are handled automatically, using Lists eliminates another major source of programming errors.

Maps - are like arrays, except that the subscripts can be non-integral types such as character strings (similar to associative arrays in AWK).

Objections - are a kind of "error object" that can be "raised" by one piece of code and "handled" by another (like UNIX "software signals"). Library components use Objections to inform clients of errors.

Path - a set of facilities for manipulating UNIX path names and UNIX search paths. Facilities include automatic path canonicalization, path relativization, wildcard and tilde expansion, path completion, and searching in search paths.

Pools - improve the runtime performance of programs which allocate and deallocate many objects of the same type (for example, Lists use Pools internally for obtaining nodes).

Regex - a set of facilities providing a consistent and enhanced interface to the Section 3 regular expression compilation and matching routines (re(3), regcmp(3), regex(3), or regexp(3), depending on the version of UNIX running).

Sets - three unordered homogeneous collection classes: Sets, Bags, and pointer sets. Provides the usual insertion, removal, membership, algebraic and relational operators and iterators.

Stopwatch - can be used for timing critical sections of code during the "performance tuning" phase of development.

Strings - are variable-length character strings. Strings offer an efficient alternative to null-terminated character arrays and their associated C library functions (strcpy, strcmp, etc). Strings have natural syntax and semantics; for example, to concatenate strings x and y, write x+y.

Strstream - specialize the standard I/O architecture (iostream) to in-core formatting, where the source or target is a String.

Symbol - unique identifiers based on character strings with efficient tests for equality and ordering.

Time - consists of three related abstractions for dealing with time in computer programs: Time (absolute time), Duration (time difference) and Place (geographical location).