ObjexxFCL Organization
Namespaces
All components of the ObjexxFCL are declared in the ObjexxFCL namespace.
The formatted i/o classes and functions are declared in the ObjexxFCL::fmt namespace. The extra namespace layer can eliminate collisions between the short formatting function names and project sourceidentifiers.
Classes and functions intended only for internal use are declared in the ObjexxFCL::internal namespace.
Header Files
Each class intended for use in project code has a forward declarations and typedef header file of the form Class.fwd.hh. For convenience, all the classes and typedefs intended for project code use are declared in the ObjexxFCL.fwd.hh header file. The ObjexxFCL.Project.hh header file has some typical using declarations and is intended to be customized to the project. The ObjexxFCL.hh header file includes the ObjexxFCL.fwd.hh and ObjexxFCL.Project.hh header files.
Project sources that use ObjexxFCL classes only "in name" can include the Class.fwd.hh header file to get the class forward declaration and convenience typedefs without bringing in all of the dependencies of the Class.hh header file. Project sources that use ObjexxFCL components more than "in name" will need to include the Class.hh file. Class body header files also bring in any typedefs from the Class.fwd.hh header. Other than the Class.fwd.hh headers, the headers normally included by project source files are:
| Header |
Description |
| ObjexxFCL.hh |
All forward and project-specific declarations |
| byte.hh |
Single-byte signed integer |
| sbyte.hh |
Single-byte signed integer (alternate name for byte) |
| ubyte.hh |
Single-byte unsigned integer |
| CArray.hh |
C-style array wrapper |
| CArrayP.hh |
C-style array wrapper/proxy |
| ChunkVector.hh |
Chunk-contiguous 1D vector |
| FArrayN.hh |
ND FArray base class template |
| FArrayND.hh |
ND real FArray class template |
| FArrayNP.hh |
ND proxy FArray class template |
| FArrayNA.hh |
ND argument FArray class template |
| KeyFArrayND.hh |
ND key-indexed FArray class template |
| FArrayN.all.hh |
ND FArray class template master header |
| FArrayN.io.hh |
ND FArray stream output |
| FArray.io.hh |
FArray stream output master header |
| FArray.all.hh |
FArray master header |
| Dimension.hh |
Dimension size parameter class |
| DimensionExpressions.hh |
Dimension expression generating operators |
| Fstring.hh |
Fortran-compatible string class |
| Cstring.hh |
C-style string wrapper class |
| string.functions.hh |
Useful std::string functions |
| char.functions.hh |
Useful char functions |
| format.hh |
C++ stream formatted input/output |
| Fmath.hh |
Math intrinsics/other functions |
| rvalue_cast.hh |
rvalue cast to reference function template |
| array.iterator.hh |
C array begin and end iterator functions |
| Time_Date.hh |
Time and date functions |
All ObjexxFCL header files are included-guarded to prevent multiple inclusion.
|