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

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

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics 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).

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • 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++26 w/out libC or POSIX. Smaller binaries, only arena allocators, SIMD, stronger type safety than STL, and value-based errors!

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
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