Die C++-V3-Bibliothek Tools.h++ V7.0 kann nur im C++ V3-Modus des Compilers genutzt werden.
Sie bietet ein breites Spektrum an „Foundation Classes“:
String-Klassen mit pattern-matching Mechanismen
Klassen zur Handhabung von Datum und Uhrzeit
virtuelle Ströme
Datei- und Dateimanager-Klassen
Containerklassen (Collectable) mit der Möglichkeit zur Realisierung von Persistenz und zugehörigen Iterator-Klassen:
Smalltalk-ähnliche Containerklassen (ohne Template-Benutzung)
Template-Containerklassen zur Speicherung von Werten (
RWTVal...)Template-Containerklassen zur Speicherung von Zeigern (
RWTPtr...)
Klassen zur Internationalisierung
Die Include-Dateien für die o.g. Schnittstellen sind in der Bibliothek SYSLIB.CRTE enthalten, die Module in der Bibliothek SYSLNK.CRTE.TOOLS.
Benutzen der Bibliothek
Programmentwicklung in BS2000-Umgebung (SDF)
Beim Übersetzen muss die Bibliothek SYSLIB.CRTE nach Standard-Includes durchsucht werden. Dies ist sichergestellt, wenn in der MODIFY-INCLUDE-LIBRARY-Anweisung für die Suche nach den Standard-Includes die Option STD-INCLUDE-LIBRARY =*STANDARD-LIBRARY angegeben wird (Voreinstellung).
Das Programm muss mit der BIND-Anweisung des Compilers gebunden werden.
In der MODIFY-BIND-PROPERTIES-Anweisung sind folgende Angaben erforderlich:
RUNTIME-LANGUAGE=*CPLUSPLUS(MODE=*V3-COMPATIBLE) und TOOLSLIB=*YES.
Für weitere Einzelheiten siehe "MODIFY-BIND-PROPERTIES".
Programmentwicklung in POSIX-Umgebung
Zum Einfügen der Include-Dateien und zum Binden der Module muss im CC-Kommando einer der C++ V3 Modus angegeben werden (-X V3-COMPATIBLE).
Beim Binden des Programms muss zusätzlich die Option -l RWtools angegeben werden. Für weitere Einzelheiten siehe Handbuch „POSIX-Kommandos des C/C++-Compilers“ [1].
Dokumentation
Die C++-V3-Bibliothek Tools.h ist in folgenden Handbüchern ausführlich beschrieben:
„Tools.h++ V7.0, User‘s Guide“ und
„Tools.h++ V7.0, Class Reference“
Hinweise zur Dokumentation
Um die Bibliothek tools.h++ unabhängig von inkompatiblen künftigen Versionen der Standard-Bibliothek zu machen, setzt sie nicht auf die Standardbibliothek auf (d.h. das define RW_NO_STL wurde im zentralen Konfigurationsheader rw/compiler.h gesetzt).
Bestimmte Klassen sind daher nicht oder nur eingeschränkt verfügbar. Diese sind im Handbuch „Tools.h++ Class Reference“ [8] entsprechend gekennzeichnet, z.B.
„RWTValMap requires the Standard C++ Library.“
Bei Benutzung der zugehörigen Header wird eine #error-Fehlermeldung ausgegeben, wie z.B.
„Cannot include header if RW_NO_STL macro is defined for your compiler“
oder
„You must have both Standard Library and Exceptions to use this class.“
Einige Klassen realisieren Funktionen, die an bestimmte Systeme gebunden sind:
header rw/xdrstrea.h; Klasse RWXDRistream und RWXDRostream
Diese Klassen sind im BS2000/POSIX nutzbar, im BS2000 native aber nicht.
header rw/winstrea.h; Klasse RWCLIPstreambuf
Im Handbuch „Tools.h++ Class Reference“ [8] steht dazu:
„Class RWCLIPstreambuf is a specialized streambuf that gets and puts sequences of characters to Microsoft Windows global memory. It can be used to exchange data through Windows clipboard facility.“
Da es im BS2000 weder das Konzept eines „Microsoft Windows global memory“ noch das eines „Windows clipboard“ gibt, steht diese Klasse hier nicht zur Verfügung.