Presentation for C++ Usergroup Dresden (13. Mai 2020)
- Metashell - Clang based interactive shell
- Metabench - collection of compile time C++ benchmarks
- Youtube - Jorg Brown (CppCon 2019) “Reducing Template Compilation Overhead, Using C++11, 14, 17, and 20.”
The experiments
folder contains all my compile time benchmarks and experimental implementations
Build instructions:
- Install Ruby
- Install Qbs - powerful open source build system
- Configure Qbs profiles for your compilers
- Compile
cd experiments
qbs build -d [build-folder] -j [N] profile:[Profile]
- use
-p [Target]
to only compile one benchmark
Build using QtCreator:
- Install Ruby
- Install QtCreator - this includes Qbs
- Configure some Kits with your compilers
- Open
experiments.qbs
as a project in QtCreator - Compile
Benchmarked third party libraries:
- Basicpp17 - A C++17 base library
- Boost.Hana - Your standard library for metaprogramming
- Co-Cpp19 - some compile time optimized implementations
- EASTL - EA Standard Template Library
- ETL - Embedded Template Library
- Folly - Facebook Open-source Library
- Kvasir::mpl - collection of zero cost statically checked libraries
- Mapbox Variant - An header-only alternative to boost::variant for C++11 and C++14
- MPark.Variant - C++17
std::variant
for C++11/14/17
- AsciiDoctor as hackable html slide generator with a lot of features
- Bespoke.js as a flexible html slide framework
- Patched AsciiDoctor-Bespoke that allows the nested code display
- Patched Bespoke-Bullets to allow better interactions through API
- Patched Bespoke-Hash that uses the extended bullets API
- Patched Bespoke-OnStage with some customizations and fixes for my setup
- Gulp to automate regeneration and push slide updates to the browser
The slides here are available under the terms of the Creative Commons Attribution-ShareAlike license. (cc-by-sa-license)
Photos
- "fast" by Derren Hodson (modified: added text) (cc-by-license)