Skip to content

Compilation of header-only C++23 constexpr utilities

Notifications You must be signed in to change notification settings

Farravid/farra_constexpr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

farra_constexpr

This is a compilation of handy constexpr utilities for C++23. You can check individual usage and uses of each utility in the specific docs listed.

This is just a learning project, nothing fancy production ready. Use it at your own risk and enjoy!

Because we love compile time programming 😎

Utilities

Setup

For a header only setup you can switch to the include branch

After cloning the repo, you only need to build the project with the handy bash script.

This is the synstax for build.sh

./build.sh [target, default=interval_map] [build_type, default=Release]

So these are all the targets available

./build.sh test #will execute the tests
./build.sh benchmark #will execute the benchmarks
./build.sh all #will execute all

Remember you can add Debug after the target name in order to build the debug libraries

Dependencies

  • C++23
  • GCC 14.1
  • Conan 2.0
  • CMake 3.2

What did I refresh/learn?

  • C++
    • constexpr
      • std::vector and std::unique_ptr
    • Data structures
    • <ranges>
    • <concepts>
    • C++23 deducing this
    • Perfect forwarding (std::forward)
    • Lifetime of objects (thanks to lifeobject.hpp)
    • CTAD
    • Type erasure (std::function)
  • Tools and libraries
    • Google benchmark library
    • Google test library (gtest)
    • Conan package manager
    • CMake

About

Compilation of header-only C++23 constexpr utilities

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published