Author here. It started when I felt virtual functions and associated heap allocations are too expensive. Then I've realized std::any doesn't work for move-only types, let alone its SBO storage isn't configurable. And there we go...
Woid is an extremely customizable high-performance type-erasure header-only library. It provides containers like std::any, std::function and tools for non-intrusive polymorphism.
Key features:
- Value semantics
- Move-only type support
- Duck typing
- Performance
- Extreme customizability
In my current benchmarks it outperforms std::any, std::function, inheritance-based polymorphism and some well-known libraries like function2, boost::te and microsoft/proxy.
I want to make sure the comparison is fair, therefore, your advice on how to better tune the existing libraries is extremely welcome.
akopich•13h ago
Woid is an extremely customizable high-performance type-erasure header-only library. It provides containers like std::any, std::function and tools for non-intrusive polymorphism.
Key features:
- Value semantics
- Move-only type support
- Duck typing
- Performance
- Extreme customizability
In my current benchmarks it outperforms std::any, std::function, inheritance-based polymorphism and some well-known libraries like function2, boost::te and microsoft/proxy.
I want to make sure the comparison is fair, therefore, your advice on how to better tune the existing libraries is extremely welcome.
And of course I'm here to answer your questions.