Displaying 1 to 20 from 53 results

modern-cpp-features - A cheatsheet of modern C++ language and library features.

  •    

Many of these descriptions and examples come from various resources (see Acknowledgements section), summarized in my own words. Also, there are now dedicated readme pages for each major C++ version.

doctest - The fastest feature-rich C++11 single-header testing framework for unit tests and TDD

  •    C++

doctest is a new C++ testing framework but is by far the fastest both in compile times (by orders of magnitude) and runtime compared to other feature-rich alternatives. It brings the ability of compiled languages such as D / Rust / Nim to have tests written directly in the production code by providing a fast, transparent and flexible test runner with a clean interface. The framework is and will stay free but needs your support to sustain its development. There are lots of new features and maintenance to do. If you work for a company using doctest or have the means to do so, please consider financial support. Monthly donations via Patreon and one-offs via PayPal.

cpp17_in_TTs - Descriptions of C++17 features, presented mostly in "Tony Tables" (hey, the name wasn't my idea)

  •    

Descriptions of C++17 features, presented mostly in "Tony Tables" (hey, the tables were my idea, but name wasn't). There are actually over 100 changes in C++17, only some of them are listed here.




cpp-taskflow - Fast C++ Parallel Programming with Task Dependency Graphs

  •    C++

A fast C++ header-only library to help you quickly build parallel programs with complex task dependencies. Cpp-Taskflow lets you quickly build parallel dependency graphs using modern C++17. It supports both static and dynamic tasking, and is by far faster, more expressive, and easier for drop-in integration than existing libraries.

jucipp - A lightweight & cross-platform IDE supporting the most recent C++ standards

  •    C++

This project has moved to https://gitlab.com/cppit/jucipp. Current IDEs struggle with C++ support due to the complexity of the programming language. juCI++, however, is designed especially towards libclang with speed, stability, and ease of use in mind.

inspector - A drop-anywhere C++ REPL

  •    C++

Allows to inject a fully-functional C++17 REPL into running, compiled programs that can access your program state and offers features like code-completion and syntax highlighting. Note that for some linux distributions the cling project also provide pre-build binaries.

rang - A Minimal, Header only Modern c++ library for terminal goodies 💄✨

  •    C++

rang only depends on C++ standard library, unistd.h system header on unix and windows.h & io.h system headers on windows based systems. In other words, you don't need any 3rd party dependencies. rang is a single header-only library. Put rang.hpp in the include folder directly into the project source tree or somewhere reachable from your project.


Vc - SIMD Vector Classes for C++

  •    C++

Recent generations of CPUs, and GPUs in particular, require data-parallel codes for full efficiency. Data parallelism requires that the same sequence of operations is applied to different input data. CPUs and GPUs can thus reduce the necessary hardware for instruction decoding and scheduling in favor of more arithmetic and logic units, which execute the same instructions synchronously. On CPU architectures this is implemented via SIMD registers and instructions. A single SIMD register can store N values and a single SIMD instruction can execute N operations on those values. On GPU architectures N threads run in perfect sync, fed by a single instruction decoder/scheduler. Each thread has local memory and a given index to calculate the offsets in memory for loads and stores. Current C++ compilers can do automatic transformation of scalar codes to SIMD instructions (auto-vectorization). However, the compiler must reconstruct an intrinsic property of the algorithm that was lost when the developer wrote a purely scalar implementation in C++. Consequently, C++ compilers cannot vectorize any given code to its most efficient data-parallel variant. Especially larger data-parallel loops, spanning over multiple functions or even translation units, will often not be transformed into efficient SIMD code.

dyno - Runtime polymorphism done right

  •    C++

At this point, this library is experimental and it is a pure curiosity. No stability of interface or quality of implementation is guaranteed. Use at your own risks. Dyno solves the problem of runtime polymorphism better than vanilla C++ does. It provides a way to define interfaces that can be fulfilled non-intrusively, and it provides a fully customizable way of storing polymorphic objects and dispaching to virtual methods. It does not require inheritance, heap allocation or leaving the comfortable world of value semantics, and it can do so while outperforming vanilla C++.

entt - Gaming meets modern C++ - a fast and reliable entity-component system (ECS) and much more

  •    C++

Consider it a work in progress. The whole API is also fully documented in-code for those who are brave enough to read it. Currently, EnTT is tested on Linux, Microsoft Windows and OS X. It has proven to work also on both Android and iOS. Most likely it will not be problematic on other systems as well, but has not been sufficiently tested so far.

cppinsights - C++ Insights - See your source code with the eyes of a compiler

  •    C++

C++ Insights is a clang-based tool which does a source to source transformation. Its goal is it to make things visible which normally, and intentionally, happen behind the scenes. It's about the magic the compiler does for us to make things work. You can see all the compiler provided functions. Also the downcast from Derived to Base.

gsl-lite - A single-file header-only version of ISO C++ Guideline Support Library (GSL) for C++98, C++11 and later

  •    C++

GSL Lite is based on the Microsoft Guidelines Support Library (GSL). gsl-lite is a single-file header-only variant of Microsoft's implementation of the Guidelines Support Library (GSL) adapted for C++98, C++03. It should also work when compiled as C++11, C++14, C++17.

async-redis - An async redis library based on your app's event loop using libevpp and AsIO.

  •    C++

An async redis library with sentinel support based on (libevpp|ASIO).You can use event_loop and parser as link library for your project and pass /usr/local/include as include directory.

cpp-sort - Additional sorting algorithms for C++14 and C++17

  •    C++

You can read more about all the available tools and find some tutorials about using and extending cpp-sort in the wiki. These results were generated with MinGW g++ 6.1.0 with the compiler options -std=c++1z -O2 -march=native. That benchmark is just an example to make this introduction look good. You can find more commented benchmarks in the dedicated wiki page.

scelta - (experimental) Syntactic sugar for variant and optional types.

  •    C++

C++17 zero-overhead syntactic sugar for variant and optional. std::variant and std::optional were introduced to C++17's Standard Library. They are sum types that can greatly improve type safety and performance.

RendererLib - RendererLib is a rendering library written in C++17, matching closely Vulkan interfaces

  •    C++

RendererLib is a rendering library written in C++14, matching closely Vulkan interfaces. The final goal of this library is to expose as much of Vulkan features as possible. Vulkan and OpenGL renderers are actually written. It comes with a set of test applications, to validate the API. To build it, you can use either CMake or premake.

sakemake - :sake: Configuration-free build system for building, testing and packaging C++17 executables

  •    Python

Configuration-free build system for Arch Linux, FreeBSD, Ubuntu 17.10 or macOS w/Homebrew, for developers that just want to program in C++17 and build one or more executables and not have to deal with build configuration and compilation flags. Defines for directories like img and data are provided. A simple way to test and package code is also provided. Required libraries must be installed manually.

iutest - c++ testing framework

  •    C++

iutest is framework for writing C++ tests. Please read the CONTRIBUTING.md for details on how to contribute to this project.