Home
ObjexxFCL 4.2
 

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 source identifiers.

The global i/o components are declared in the ObjexxFCL::gio namespace to avoid collisions with other open, read, write, and close functions.

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
ObjexxFCL.Project.hh ObjexxFCL Project-specific declarations
ArrayN.hh ND Array base class template
ArrayND.hh ND real Array class template
ArrayNA.hh ND argument Array class template
ArrayNS.hh ND slice Array class template
ArrayN.all.hh ND Array class template master header
Array.all.hh Array master header
MArrayN.hh ND member array class template
Vector2.hh Fast 2-element vector
Vector3.hh Fast 3-element vector
Vector4.hh Fast 4-element vector
CArray.hh C-style array wrapper
CArrayA.hh C-style array wrapper with alignment support
CArrayP.hh C-style array wrapper/proxy
ChunkVector.hh Chunk-contiguous 1D vector
Cstring.hh C-style string wrapper class
string.constants.hh Useful std::string constants
string.functions.hh Useful std::string functions
char.constants.hh Useful char constants
char.functions.hh Useful char functions
Fmath.hh Math intrinsics/other functions
numeric.hh Numeric intrinsic functions
bit.hh Bit functions
byte.hh Single-byte signed integer
ubyte.hh Single-byte unsigned integer
gio.hh Global i/o system
FormattedIO.hh Meta-header with all formatted i/o application headers
Stream.hh Stream wrapper class hierarchy
Read.hh Formatted read support
Write.hh Formatted write support
Print.hh Formatted output to console support
Inquire.hh File/stream query support
Backspace.hh Back up by one record
Rewind.hh Move to beginning of stream/file
time.hh Time and date functions
random.hh Random number functions
command.hh Command line functions
environment.hh Environment variable functions
Optional.hh Optional argument wrapper class template
Required.hh Required argument wrapper class template
Reference.hh Reference (POINTER) wrapper class template
align.hh Alignment support
vectorize.hh Vectorization support
array.iterator.hh C array begin and end iterator functions
floops.hh Fortran DO loop logic support
rvalue_cast.hh rvalue cast to reference function template

All ObjexxFCL header files are included-guarded to prevent multiple inclusion.