Please find all about the ALib For C++, including
- Programmer's Manuals
- Reference Documentation
- Tutorials
- Project setup guide
- Version History / Change log
at the ALib Homepage.
ALib is a general purpose, use-case agnostic, platform independent, low-level C++ class library.
Its mission is to provide foundational concepts, types and idioms relevant to any C++ project. As of today, ALib consists of 16 modules, each addressing different topics. A subset of the available modules can be selectively included in a custom library build.
- ALib is free software.
- The minimum C++ language standard is C++ 11, selective support for more modern C++ versions included.
- Modularization: Possible selective use of only parts of the library.
- Extensive documentation.
- Least intrusive: Designed to keep user code as independent from ALib types and idioms as possible.
- Developed and steadily tested under GNU/Linux, Windows OS and Mac OS with compilers GNU, Clang and Microsoft Visual C++.
ALib compiles as is, hence it is not dependent on any 3rd-party library.
Optional dependencies exist. For example if boost is available,
ALib Strings are using its regex search.
In contrast, ALib provides optional compatibility headers for 3rd-party libraries
(e.g. QT Class Library), which for example provide adoptions of ALib type-traits
for QT-types.
The following documentation is provided.
-
Reference Documentation covering 100% of types, members, functions, namespaces, macros and other C++ entities.
-
Programmer's Manuals are available for (almost) each module of the library.
Together more than 450 pages of well structured in-depth discussion of library features as well as step by step tutorials are available. -
A detailed version history is given.
-
A separated General Manual is available describing the library structure, project setup, bootstrapping, etc.
-
Reference documentation to C++ compiler symbols and macros.
-
Tutorial and reference documentation's code samples are implemented as unit tests and are integrated as source and output text snippets into the documentation.
-
For module ALox, a separated website exists. This includes plenty of ALox-specific documentation, a lengthy tutorial, definitions of configuration/environment variables and more.
The C++ Version got tested on the following platform combinations:
-
GNU/Linux (Arch Linux)
-
Windows 10
- Visual Studio 2017, Version 15.9.18
-
macOS Catalina 10.15.1
- Apple Clang Version 11.0.0
- CLion 2019.3.1
The Programmer's Manual contains an extensive chapter about how to compile and use ALib in your C++ environment.
Parts of ALib have sibling incarnations in programming languages C# and JAVA. Historically, ALib aimed to be a cross platform/cross language library. This goal was (mostly) dropped in favour to be able to independently develop ALib for C++.
ALib for C# and ALib for Java are included in and distributed with the cross platform ALox Logging Library.
ALib is free software, can be downloaded at Github and sources are published under Boost Software License
We would be happy, if the community started to support this library and are willing to receive
contributions and, if accepted, to update the code accordingly.
Note that for legal reasons, we hereby explicitly refuse and reject code (or ideas for code)
that are not explicitly provided under the Boost Software License.
Please do not even contact us with your ideas/code in that case.
Our thanks go to all supporters that did and do help realizing this project. Furthermore to just all of these millions of supporters of free software, including:
- The GNU/Linux project and community,
- The LLVM/Clang project,
- The CMake project,
- The QT Creator team,
- Microsoft for providing Visual Studio Community Edition project,
- To company JetBrains for providing a free license to open source developers of their absolutely superb and unrivalled set of IDEs for various programming languages.
- To Dimitri van Heesch for providing marvelous documentation software Doxygen.
Special thanks also to C. Darwin, who created life on earth hundreds of millions of years ago, until he - when things became too crazy - disappeared in 1882.
Please visit the ALib Homepage!