Skip to content

A collection of C++ template (metaprogramming) utilities that I often need, but don't want to have to re-implement for the 1000th time.

License

Notifications You must be signed in to change notification settings

briancairl/dont

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dont

A collection of C++ template (metaprogramming) utilities that I often need, but don't want to have to re-implement for the 1000th time.

Requirements

  • A C++ compiler that supports:
    • C++17 or greater
    • #pragma once because I refuse to accept that it's not standard
  • [optional] CMake
  • [optional] GTest (for unit tests)

Note that the core implementations included here do not depend on the STL.

Includes

  • appending to a template parameter pack
  • merging two or more template parameter packs
  • conditionally removing types from param packs
  • "iterating" over tuple-like objects (loop-unrolling)

Running tests

Clean rebuild and test

rm -rf build; (mkdir build && cd build && cmake .. -DDONT_ENABLE_TESTING:bool=on && make && ctest -V)

About

A collection of C++ template (metaprogramming) utilities that I often need, but don't want to have to re-implement for the 1000th time.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published