tiny-optional
FunctionalPlus
tiny-optional | FunctionalPlus | |
---|---|---|
3 | 10 | |
93 | 2,006 | |
- | - | |
7.3 | 7.7 | |
16 days ago | 19 days ago | |
C++ | C++ | |
Boost Software License 1.0 | Boost Software License 1.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tiny-optional
-
Is bloat in std::unexpected expected?
There are several implementations of compact optionals, see https://github.com/Sedeniono/tiny-optional, and related work & reddit thread.
-
tiny::optional – a C++ optional that does not 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).
- Show HN: Tiny:optional – a C++ optional that does not waste memory
FunctionalPlus
-
Leaving Haskell Behind
Hoogle is really amazing!
Inspired by it, I implemented something similar for FunctionalPlus (a functional-programming library for C++): https://www.editgym.com/fplus-api-search/
I'd love to see more projects taking this path too. :)
-
C++ algorithm helpers - kdalgorithms
You can get a feel for it on its api search site: as an example, enter these queries:
-
C++20 Ranges The Key Advantage - Algorithm Composition
I use a library called FunctionalPlus daily.
-
Why C++ for everything?
As idiomatic, I will try to adopt as much as possible purely functional programming in C++ by using https://github.com/Dobiasd/FunctionalPlus . Do you have by any chance any alternative suggestion?
-
Building a Dual Shared and Static Library with CMake
Any project CML file that is more complex than this is mismanaged and needs fixing asap. There is absolutely no reason to make CML files describing requirements of a library substantially more complex other than if you have a vendetta against yourself, package maintainers and your users.
-
CLion IDE
FunctionalPlus - 30 lines for usage requirements + 60 for install rules: just simple commands creating a target, setting properties and defining install rules. Hmm, nothing unholy here.
-
Integrating sanitizers into your CI workflow
Another option is to use a superbuild CML where you can do all the nasty, platform specific things. Example of a superbuild CML.
-
Best practice unit tests + examples with cmake
You can copy this project structure: https://github.com/Dobiasd/FunctionalPlus
- CMake and the Future of C++ Package Management
What are some alternatives?
tiny - low-level library for minimizing the size of your types
C++ B-tree - Git mirror of the official (mercurial) repository of cpp-btree
dynamap - Thread-safe and dynamically resized hash map for C++ (header-only)
v8pp - Bind C++ functions and classes into V8 JavaScript engine
dynamic_bitset - Simple Useful Libraries: C++17/20 header-only dynamic bitset
Hashmaps - Various open addressing hashmap algorithms in C++
function2 - Improved and configurable drop-in replacement to std::function that supports move only types, multiple overloads and more
sparsehash - C++ associative containers
pybind11 - Seamless operability between C++11 and Python
LSHBOX - A c++ toolbox of locality-sensitive hashing (LSH), provides several popular LSH algorithms, also support python and matlab.
nvim-dap - Debug Adapter Protocol client implementation for Neovim
CPM.cmake - 📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.