libFAUDES C++ API

As a C++ library, the natural application interface of libFAUDES is given by C++ class and function declarations. The C++ API documentation is generated directly from the C++ source code and supplemented by tutorials that illustrate the intended ussage by simple example programs.

The C++ API is organized as follows:

In addition to the C++ API, libFAUDES provides a user-reference to address the typical user of a libFAUDES application without bothering with C++ implementation technicalities.


Compile

libFAUDES is coded in posix C++ and should compile within any recent C++ development environment. The supplied Makefile is targeted for the GNU-Tool-Chain and provides the following build targets:

  • make default to build library and utility executables;

  • make tutorial to compile examples from the tutorial section.

  • make clean to remove temporary object files

For more information on how to compile libFAUDES, see the build-system documentation.


Coding Conventions

In order to ease communication, libFAUDES sources try to follow some notational conventions. They are extracted from www.possibility.com/Cpp/CppCodingStandard.html.

  • member variable names are upper case with lower case prefix that indicates ownership, i.e. m for ordinary members, p for pointer to variables controlled somewhere else, r for refernces to variables controlled somewhere else, and mp for pointers to variables controlled here;

  • function-local stack variables are lower case,

  • class names are upper case, with prefix T for class templates.

  • keep local stuff in the .cpp file, minimize .h files

Moreover, we

  • avoid the Set/Get prefixes of members functions and use overloading instead;

  • throw exceptions rather than abort() or assert();

  • use FAUDES_filename_H macro in headers;

  • use the provided macros in cfl_definitions FD_WARN etc for any console output;

  • use 2-space indent to have shorter lines of code;

  • never ever have "using" statements in headers.


License

The core libFAUDES sources incl. the C++ API are provided for free under conditions of the GNU Lesser General Public License. Note that different and perhaps more restrictive license terms may apply to the plug-ins that reside in the plug-in directory.




Copyright (C) 2006 Bernd Opitz
Copyright (C) 2008 - 2010 Thomas Moor, Klaus Schmidt, Sebastian Perk
Copyright (C) 2010 - 2018 Thomas Moor, Klaus Schmidt

libFAUDES 2.29d --- 2019.12.01 --- c++ api documentaion by doxygen