Read Me

header names
------------
There's a list of ISO headers in headers.iso; each ISO header <blah> becomes
<vcl_blah.h> and there should not be any other headers here. Exceptions are:
vcl_compiler.h
Every other header file in this directory should include this file.
That's a requirement and it's service which clients can rely on; thus
if you include <vcl_iostream.h> you *don't* need to include
<vcl_compiler.h> even if you need the macros defined in there.
vcl_complex_fwd.h
This is deprecated
vcl_rel_ops.h
This is the (deprecated) vcl form of the ISO incantation
#include <utility>
using std::rel_ops::operator!=;
using std::rel_ops::operator> ;
using std::rel_ops::operator<=;
using std::rel_ops::operator>=;
vcl_rtti.h
Under construction. For rtti emulation with compilers that don't support
rtti.
vcl_stlfwd.h
Forward declare the most commonly used parts of the STL, if possible.
vcl_deprecated_header.h
Including this causes a preprocessor or compiler warning to be emitted. So
include <vcl_deprecated_header.h> in header files that are to be deprecated.
tests directory
---------------
It is important to have a test program for every vcl feature as early
detection of problems can save hours of recompilation time if a vcl
header has to be modified.
template files
--------------
This is the official codification of template file naming, as was proposed by
Peter Vanroose.
~ is for pointer (*)
+ is for < in templates
- is for > in templates
. is for the commas between template arguments
+- is for the :: in nested classes
The abbreviations uchar, ushort, uint, ulong stand for unsigned versions of
integer types. Use 's' as a prefix for signed versions. Beware that 'char'
can be either signed or unsigned and may or may not be the same type as the
qualified form.