Giter VIP home page Giter VIP logo

kerbal's Introduction

Kerbal

language English | ๆฑ‰

Static Badge Codacy grade Vcpkg Version License

GitHub code size in bytes GitHub test code size in bytes

GitHub last commit GitHub commit activity GitHub commit activity GitHub commit activity

C++ template library with:

  1. more fundamental features,
  2. modern standard library facilities backport to old,
  3. and MORE constexpr!

Install

I) Install via Vcpkg

Vcpkg environment is required, see Vcpkg

vcpkg install kerbal

II) Install via Source

  1. clone repository
git clone https://github.com/WentsingNee/Kerbal.git
cd Kerbal
  1. clone git submodules (if you need)
git submodule init
git submodule update
  1. 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
  1. install
cd build
cmake --build . --target install

then Kerbal will be installed to CMAKE_INSTALL_PREFIX

  1. generate package (if you need)
cd build
cpack .

Integrate Kerbal In Your CMake Project

find_package(Kerbal REQUIRED)
target_link_libraries(
        your-target PRIVATE
        Kerbal::kerbal
        [Kerbal::kerbal-omp] # maybe required when you have used Kerbal::omp module
)

Sub Libraries Overview

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 ...

Document

  • Doxygen generated document: click this

Thanks

ThinkSpirit Laboratory of Nanjing University of Information Science and Technology

kerbal's People

Contributors

hannikodo avatar wentsingnee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.