callonce ships as source — a single header plus its tests, examples, CMake build files and the Conan recipe. There is no compiled artefact to download; the library is #include <memoized_invoke.hh>. 1.0.0 is the first public release — until now callonce lived only as a proposal draft and an internal dependency.
Releases
| Version | Date | Source | Checksums |
|---|---|---|---|
| 1.0.0 | 2026-09 | .tar.gz · .zip | .tar.gz.sha256 · .zip.sha256 |
Each archive contains the full source tree — src/memoized_invoke.hh, test/, examples/, CMakeLists.txt, Doxyfile.in, the Conan recipe and LICENSE. Extract and follow the installation guide; nothing beyond a C++20 compiler and CMake 3.20+ is required to build the tests and examples.
Verifying a download
sha256sum -c callonce-1.0.0.tar.gz.sha256
# callonce-1.0.0.tar.gz: OK
Then extract and follow the installation guide.
Release notes
1.0.0 — first public release. The reference implementation for the std::memoized_invoke proposal, packaged as a standalone library.
memoized_invoke<ExecutionPolicy, F, Args...>— run any callable at most once per argument set, cache the result,reset(), and re-run when the arguments change. Covers free / member function pointers, lambdas, functors,std::functionandstd::bind_frontresults, with CTAD deducing every template parameter.- Two execution policies —
single_threaded(zero overhead, the CTAD default) andlock_free(atomic CAS + C++20atomic::wait) — selected viamake_memoized. - Fixed: a
lock_freewaiter woken because the winning thread's callable threw used to fall through without running the callable itself, so the next read of the cache threwstd::bad_optional_accessand terminated the worker thread.check_and_call()now re-enters and retries, matching the documented "another thread can retry" contract. A 200-iteration regression test covers it. (See the blog post.) - A generated API reference (Doxygen — class, collaboration, include and call/caller graphs) alongside the hand-written Reference Manual, and three worked examples each with a byte-exact smoke test.
Binary packages (.deb, .rpm) are not planned — callonce is header-only, so there is nothing to package beyond the source.
See also
- Installation — how to integrate callonce once you have the source.
- API Documentation — the generated reference.
- Impressum — contact information.
- Blog — release announcements are posted here as they happen.

