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

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.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • 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.

  • 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
  • tiny-optional

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

  • 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).

  • 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!

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub 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

  • C++ Game Utility Libraries: for Game Dev Rustaceans

    9 projects | dev.to | 13 Mar 2024
  • Why are strings and IO so complicated?

    13 projects | /r/cpp | 7 Dec 2023
  • Factor is faster than Zig

    11 projects | news.ycombinator.com | 10 Nov 2023
  • If this isn't the perfect data structure, why?

    3 projects | /r/C_Programming | 22 Oct 2023
  • What C++ library do you wish existed but hasn’t been created yet?

    18 projects | /r/cpp | 8 Jul 2023