tiny::optional – a C++ optional that does not waste memory

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/cpp

Our great sponsors
  • Sonar - Write Clean C++ Code. Always.
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SaaSHub - Software Alternatives and Reviews
  • tiny

    low-level library for minimizing the size of your types (by foonathan)

    I actually came across the term "tombstone" before, in the "foonathan/tiny" library. I found that one after I started building tiny::optional, and it seems to have similar use cases, but also seemed abandoned and not to implement a fully fledged std::optional replacement. So maybe he got the idea from the talk by Arthur O'Dwyer.

  • tiny-optional

    Replacement for std::optional that does not unnecessarily waste memory

    tiny::optional is a header-only C++ library for x86/x64 intended to be a drop-in replacement for std::optional with the twist that it does not require additional memory for bools, floats, doubles and raw pointers. For example, a std::optional has twice the size of a raw double because of 7 padding bytes after the internal bool. These wasted bytes can have a notable impact on performance in memory bound applications. On the other hand, a tiny::optional has the size of a double by exploiting unused bit patterns (i.e. by exploiting platform specific behavior).

  • Sonar

    Write Clean C++ Code. Always.. Sonar helps you commit clean C++ code every time. With over 550 unique rules to find C++ bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.

  • compact_optional

    A template for creating optional-like object with no space overhead

    Or there's this from 2015: https://github.com/akrzemi1/compact_optional

  • cmake-init

    The missing CMake project initializer

    Grab cmake-init and you won't even have to think much about how to support clients using CMake.

  • libCat

    🐈‍⬛ A runtime for C++23 w/out libC or POSIX. Smaller binaries, only arena allocators, SIMD, stronger type safety than STL, and value-based errors!

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts