C++ template library with:
- more fundamental features,
- modern standard library facilities backport to old,
- and MORE constexpr!
Vcpkg environment is required, see Vcpkg
vcpkg install kerbalnuget install kerbal- clone repository
git clone https://github.com/WentsingNee/Kerbal.git
cd Kerbal- clone git submodules (if you need)
git submodule init
git submodule update- configure by CMake
mkdir build
cmake -S . -B build/ \
-DCMAKE_BUILD_TYPE=Release
# the following arguments are optional
# the path prefix to install Kerbal
-DCMAKE_INSTALL_PREFIX=`the-path-prefix-you-want-to-install`
# default is set to your system path
# the package generator(s) enabled during the cpack stage
-DCPACK_GENERATOR=`package-generators-you-want`
# default is set to "DEB;STGZ;TGZ;ZIP"
# whether install pretty printer files
# git submodule of `pretty_printer` is required to be existed
-DKERBAL_INSTALL_PRETTY_PRINTER=True # or False
# default value is decided by the existence of `pretty_printer` submodule- install
cd build
cmake --build . --target installthen Kerbal will be installed to CMAKE_INSTALL_PREFIX
- generate package (if you need)
cd build
cpack .find_package(Kerbal REQUIRED)
target_link_libraries(
your-target PRIVATE
Kerbal::kerbal
[Kerbal::kerbal-omp] # maybe required when you have used Kerbal::omp module
)| Library | Brief |
|---|---|
| Kerbal::kerbal | |
| algorithm | algorithm |
| any | std::any-like facility but backport to C++98, together with C++20 constexpr support |
| assign | std::initializer_list-like facility for C++98 |
| autonm | autonomous containers, having flexible memory (de)allocation like intrusive containers but have no intrusion to value type |
| bitset | static_bitset (like std::bitset but have more function and constexpr support) |
| compare | comparators and sequence compare |
| compatibility | compatibility macros |
| config | architecture, compiler, OS platform, std library environment detection |
| container | array, vector, static_vector, list, forward_list, priority_queue ... |
| function | function, function_traits, invoke, invoke_r ... |
| hash | hash support |
| iterator | iterator support |
| macro | macro utilities |
| memory | memory management support like allocator, uninitialized algorithms |
| numeric | numeric algorithms |
| operators | use CRTP to simplify operator overload |
| optional | std::optional-like facility but backport to C++98 |
| random | random number engines and distributions |
| smath | static math |
| test | unit test |
| tmp | template meta programming facilities |
| type_traits | C++11 <type_traits>-like facilities but backport part to C++98 |
| utility | compressed_pair, tuple ... |
| Kerbal::kerbal-coroutine | |
| coroutine | coroutine facilities |
| Kerbal::kerbal-omp | |
| ompalgo | openMP accelerated algorithms |
| openmp | openMP facilities and environment detection |
| Kerbal::kerbal-parallel | |
| parallel | parallel facilities |
- Doxygen generated document: click this
ThinkSpirit Laboratory of Nanjing University of Information Science and Technology