./devel/frozen, Header-only, constexpr alternative to gperf for C++14 users

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.1.1, Package name: frozen-1.1.1, Maintainer: ryoon

Header-only library that provides 0 cost initialization for immutable
containers, fixed-size containers, and various algorithms.

Frozen provides:

* immutable (a.k.a. frozen), constexpr-compatible versions of
std::set, std::unordered_set, std::map and std::unordered_map.

* fixed-capacity, constinit-compatible versions of std::map and
std::unordered_map with immutable, compile-time selected keys
mapped to mutable values.

* 0-cost initialization version of std::search for frozen needles
using Boyer-Moore or Knuth-Morris-Pratt algorithms.

The unordered_* containers are guaranteed perfect (a.k.a. no hash
collision) and the extra storage is linear with respect to the
number of keys.

Once initialized, the container keys cannot be updated, and in
exchange, lookups are faster. And initialization is free when
constexpr or constinit is used :-).


Master sites:

Filesize: 182.216 KB

Version history: (Expand)


CVS history: (Expand)


   2023-11-07 10:13:42 by Tobias Nygren | Files touched by this commit (1)
Log message:
frozen: disable test suite for now, fails on at least GCC 12 and 13
   2023-10-15 21:26:40 by Ryo ONODERA | Files touched by this commit (5) | Package updated
Log message:
devel/frozen: import frozen-1.1.1

Header-only library that provides 0 cost initialization for immutable
containers, fixed-size containers, and various algorithms.

Frozen provides:

  * immutable (a.k.a. frozen), constexpr-compatible versions of
    std::set, std::unordered_set, std::map and std::unordered_map.

  * fixed-capacity, constinit-compatible versions of std::map and
    std::unordered_map with immutable, compile-time selected keys
    mapped to mutable values.

  * 0-cost initialization version of std::search for frozen needles
    using Boyer-Moore or Knuth-Morris-Pratt algorithms.

The unordered_* containers are guaranteed perfect (a.k.a. no hash
collision) and the extra storage is linear with respect to the
number of keys.

Once initialized, the container keys cannot be updated, and in
exchange, lookups are faster. And initialization is free when
constexpr or constinit is used :-).