ALib C++ Framework
by
Library Version: 2511 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
Change Log

todo link replacements:

  • find links that contain underscores at the start and have a display "_". This is often old reference to manual sections with headlines
  • find links that contains a backslash in their display defininition, for example: "Variable::Get;Get\<Bool\>()" Either replace them or allow the backslash escape symbol in the DXL. Don't we do this already with " ?. Nevertheless replace the samples above. No, I guess other escapes are not needed to be supported!
  • Suchen nach allen links die auf ein member in namespace alib zeigen und kein display scope depth von ;2 haben

todo: Version 26??, Revision 0, released , 2026

General Changes (not module related)
  • We renamed the project from A-Worx C++ Library to ALib C++ Framework. Although we kept all possibilities to strip-off unneeded modules and reduce the use to "library-level", our feeling is that most users prefer a larger set of modules than a smaller one.
    Especially with the inclusion of the new module ALib App (see below), the term Framework
    better represents the nature of what is provided.
  • Revised the preprocessor macro documentation, which is now available with page ALib and the C++ Preprocessor. With that, the terminology of the preprocessor macros has been clarified. Formerly called "compilation symbols" are now called "configuration macros".
  • Renamed all macros concerning compiler warnings. Those had been prefixed ALIB_WARNINGS_ and then mostly a negation, the word IGNORE or OFF followed. Now all warnings are prefixed by ALIB_ALLOW_. For example ALIB_ALLOW_SPARSE_ENUM_SWITCH. The macro to restore the warning level to the previous compiler state was renamed from ALIB_WARNINGS_RESTORE to ALIB_POP_ALLOWANCE.
  • Added macro ALIB_ALLOW_SWITCH_WITHOUT_DEFAULT.
  • Removed former header file ALib.Compatibility.StdStrings.H. Most of the type traits that had been set in this file are now active by default. Hence, in most cases, just remove the include-statement. For the other case, see next bullet point.
  • Added the header file ALib.Strings.StdFormatter.H, which defines type traits in respect to std::formatter. This functionality was moved from the now removed header file ALib.Compatibility.StdStrings.H.
Module Configuration:
  • Added the method bool IsWriteBack() const, which allows custom variable types to signal that their values should be written back to the configuration file.
  • Fixed a bug in the method create, which caused presetting configuration variables (what is, for example, done with IniFileFeeder::ImportAll) to overwrite values of plug-ins
    with higher priority, i.e. command-line arguments and environment variables.
    The error occurred only for variables which have not been resourced and not pre-initialized
    using the method PreloadVariables and thus was not detected until now.
Module ALox:
Module BitBuffer:
  • Renamed overloaded methods Read and Write to (still overloaded)

    This was done for technical reasons (doxygen) but also to avoids confusion and using code is better readable.

Module Boxing:
  • Added methods IsNull and IsNotNull.
  • Added template parameter TIntegral to the inline method Integral to conveniently hide static_cast statements for the caller.
Module Camp:
  • Renamed macro ALIB_RESOURCED_IN_MODULE to ALIB_RESOURCED_IN_CAMP.
  • Changed resources "SE<", "OSERR", and "UknSE<" from GNU-library naming to generic C/C++ naming. This reflects the possibility to link ALib against other standard libraries than that provided by GNU.
  • Added debug-assertion when camps in list CAMPS are doubly inserted.
Module Expressions:
  • Added the method IsConstant.
  • Fixed a bug in class ExpressionFormatter, which caused the expression scope to become invalid during the formatting process.
  • Class ExpressionFormatter now escapes all characters of the given format string. This is necessary because the ALib-formatter used internally expects escaped strings. (It was a bug not to do so.)
Module Monomem:
  • Added public inner helper type Resetter.
Module Files:
  • Added the possibility to assemble the original symbolic path of a scanned file. While the whole challenge and the solution is explained in the new manual chapter 2.3 Real-Paths, the following bullet points summarize the changes of the API:
    • Added the methods File::SetSymbolicParent and File::GetSymbolicParent.
    • The former method File::AssemblePath was replaced by method AssembleRealPath and the sibling method AssembleSymbolicPath was added.
    • The method File::Format now supports new tokens "nr" and "nx".
    • The function ScanFiles now sets the symbolic parent of scanned files accordingly.
    • To achieve this, ALib could not continue to rely on posix realpath respectively C++ std::filesystem::canonical, because this loses the information about the symbolic link. Instead, the new namespace function MakeCanonical was introduced. This is now internally used by ScanFiles.
    • The function ScanFiles now returns the result of that initial conversion of the non-canonical start path. Furthermore, the function now has the optional output parameter of type CanonicalPathList, which had been a vector before.
    • todo: es Fehlt noch die Separation der AbsolutePath und server, etc Erkennung.
  • Fixed a bug in class TextFileLineReader, which prevented the detection of error codes. Field Status was never set. (Yes, we have no unit tests for this class introduced recently.)
  • Added template parameter TLocalBufferSize to the struct TextFileLineReader and the class TTextFile to allow specifying the size of the local buffer.
Module Format:
Module Variables:
Module Resources:
  • Introduced class ResourceHolder, which is now a base type of class Camp and received all its functionality related to holding a specific resource-pool instance and offering an interface on it.
Module Strings:
Module System:
Module Threads:
  • Renamed former class Condition to Event and refactored and extended its interface.

todo: add old dox