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 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 install
then 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 |
---|---|
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 |
ompalgo | openMP accelerated algorithms |
openmp | openMP facilities and environment detection |
operators | use CRTP to simplify operator overload |
optional | std::optional -like facility but backport to C++98 |
random | random number engines and distributions |
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 ... |
- Doxygen generated document: click this
ThinkSpirit Laboratory of Nanjing University of Information Science and Technology