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.
cpp cpp11 cpp14 cpp17doctest 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.
c-plus-plus doctest tdd testing unit-testing header-only cplusplus cpp cpp11 cpp14 cpp17 single-file test-framework📚 C++11/14/17 On the Fly
cpp11 cpp14 cpp17 modern-cpp cppDescriptions 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 cpp17 tony-tables template-metaprogramming concepts optional variant structured-bindingsA 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.
taskflow task-based-programming cpp17 parallel-programming threadpool concurrent-programming header-only flowgraph high-performance-computing multicore-programming multi-threading taskparallelism multithreadingThis 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.
juci lldb libclang ide llvm cpp14 cpp17 cpp1zsol is a C++ library binding to Lua. It currently supports all Lua versions 5.1+ (LuaJIT 2.x included). sol aims to be easy to use and easy to add to a project. The library is header-only for easy integration with projects. Find it here. A run-through kind of tutorial is here! The API documentation goes over most cases (particularly, the "api/usertype" and "api/table_proxy" and "api/function" sections) that should still get you off your feet and going, and there's an examples directory here as well.
sol lua-bindings lua-binding lua-scripting simple modern-cpp gcc clang visual-studio android ios ndk visual-cpp luajit cpp17Fast compile-time regular expression with support for matching/searching/capturing in compile-time or runtime. You can use single header version from directory single-header. This header can be regenerated with make single-header.
regular-expression cpp17 cpp20 header-only constexpr compile-time awesome template-udl pcreThe Parsing Expression Grammar Template Library (PEGTL) is a zero-dependency C++ header-only parser combinator library for creating parsers according to a Parsing Expression Grammar (PEG). Grammars are written as regular C++ code, created with template programming (not template meta programming), i.e. nested template instantiations that naturally correspond to the inductive definition of PEGs (and other parser-combinator approaches).
peg header-only cpp parsing cpp17 cpp11 grammar parsing-expression-grammarsOpenXRay is an improved version of the X-Ray engine, used in world famous S.T.A.L.K.E.R. game series by GSC Game World. Changelist and more is available in wiki.
directx11 opengl cpp cpp17 game-engine stalker xray-engine x86 x64 alife d3d9 d3d11 directx sdl sdl2 opensource engine cplusplus 3d-engine cmakeNote: This is a beta release. The Boden API is not yet fully complete and stable. On a Mac: macOS 10.14+, Xcode 10.1+, Python 3.4+, CMake 3.10.2+.
cross-platform android-ui ios-ui cpp cpp17 mobile mobile-development mobile-appAllows 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.
cpp17 inspector repl lldb gdbrang 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.
cli ansi rang cpp cpp11 console command-line color terminal cpp14 cpp17 cplusplus cpp-libraryRecent 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.
vectorization parallel simd-vector simd-instructions simd avx c-plus-plus avx512 sse neon cpp portable cpp11 cpp14 cpp17 avx2 simd-programming data-parallel parallel-computingHeader-only C++17 library provides static reflection for enums, work with any enum type without any macro or boilerplate code.
cplusplus cplusplus-17 c-plus-plus c-plus-plus-17 cpp cpp17 enum-to-string string-to-enum serialization reflection metaprogramming header-only single-file no-dependenciesHeader-only C++17 library provides nameof macros and functions to simply obtain the name of a variable, type, function, macro, and enum. Nameof returns std::string_view. If argument does not have name, returns empty string.
cplusplus cplusplus-17 c-plus-plus c-plus-plus-17 cpp cpp17 nameof nameof-operator enum-to-string serialization reflection metaprogramming header-only single-file no-dependenciesThis C++14 library is meant for accessing structure elements by index and providing other std::tuple like methods for user defined types without any macro or boilerplate code. Distributed under the Boost Software License, Version 1.0.
boost std reflection cpp14 cpp17 reflections reflection-library cpp cplusplus cplusplus-14 tuple tuples magic visual-studio gcc clangSimply include pprint.hpp and you're good to go. pprint supports a variety of STL sequence containers including std::vector, std::list, std::deque, and std::array.
pretty-printer mit-license single-header-lib cpp17At 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++.
cpp hana cpp14 cpp11 type-erasure polymorphism cpp17Consider 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.
header-only modern-cpp cpp cpp14 entity-component entity-component-system game-development game-programming architectural-patterns game-engine gamedev gamedev-framework cpp17 minecraft indiegame indiedev indie-developer game-dev
We have large collection of open source products. Follow the tags from
Tag Cloud >>
Open source products are scattered around the web. Please provide information
about the open source projects you own / you use.
Add Projects.