language English | 汉 |
C++ template library with:
1) more fundamental features, 2) modern standard library facilities backport to old, 3) and MORE constexpr!
Vcpkg environment is required, see Vcpkg
vcpkg install kerbal
nuget install kerbal
1) clone repository
git clone https://github.com/WentsingNee/Kerbal.git
cd Kerbal
2) clone git submodules (if you need)
git submodule init
git submodule update
3) 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
4) install
cd build
cmake --build . --target install
then Kerbal will be installed to CMAKE_INSTALL_PREFIX
5) 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 |
ThinkSpirit Laboratory of Nanjing University of Information Science and Technology