AnyAny
tolc
Our great sponsors
AnyAny | tolc | |
---|---|---|
22 | 9 | |
421 | 37 | |
- | - | |
6.2 | 0.0 | |
14 days ago | almost 2 years ago | |
C++ | CMake | |
Apache License 2.0 | GNU General Public License v3.0 or later |
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.
AnyAny
- DynaMix 2.0.0 Released
-
rust-like traits on plain C++ with short macro (type erasure actually)
https://github.com/kelbon/AnyAny trait(add, void(int), self.add(args...));
-
Static Interfaces, concepts vs de-virtualisation?
i dont know what he means, but with this type erasure library you can have non virtual interface and still use dynamic polymorphism with those types, so you dont need choose *do i need to do this type polymorphic* etc
-
[C++23] constexpr std::function in 40 LOC (simplified) powered by constexpr std::unique_ptr
There are also invoking from tuple and curring (just an example of technique)https://github.com/kelbon/AnyAny/blob/main/examples/functional_paradigm.hpp
-
A call to action: Think seriously about “safety”; then do something sensible about it -> Bjarne Stroustrup
As for my example containers: https://github.com/kelbon/AnyAny/blob/main/include/data_parallel_vector.hpp
- C++ Polymorphism Without Inheritance Using Glaze
-
С++20 library for high-performance polymorphic types usage
variant_swarm - container which behaves as set of std::variant, but with much faster visit operation and operation for getting view to all values of type T. It short, it just stores all types separatelly and supports operations visit, view, also you can change underlying containers for Ts..., it is std::vector by default https://github.com/kelbon/AnyAny/blob/main/include/variant_swarm.hpp
-
I wrote multidispatching(runtime overload resolution) in C++ (and its not std::variant)
Its part of my library for working with polymorphic types.
-
I wrote a library that emulates dyn traits from Rust in C++
Good idea selling Rust from behind enemy lines soldier! My god, your readme doesn't even mention Rust, wonderful!
-
Using final in C++ to improve performance
https://github.com/kelbon/AnyAny here you can see how it implemented, for example
tolc
-
CLI11 is making all the other options libraries look bad, does anyone have a comparison from experience?
I love CLI11! It has been pretty easy all the way through. Used to use lyra before but since I wanted to have subgroups in Tolc I had to switch. Great job on CLI11 if the author is in the chat :)
- Show HN: A Bindings Compiler for C++
- C++ Show and Tell - July 2022
-
Finding the right order to define objects
I'm working on a project called Tolc that is generating bindings from C++ to other languages. When creating bindings to a class MyClass, it needs to be defined before any code using that class (for example a function that returns an instance of it). Therefore I needed to know in which order to define things. Honestly I just had so much fun solving this problem (using some C++20 and features) that I wrote a post so sum it all up:
-
A C++ Bindings Compiler
Hi everyone!
Some friends and I were unhappy with how much work it was to use C++ from other languages. We were working in the optimizations industry and often had to prototype with python. Eventually, we created a tool to make it easier for C++ to talk to python (by generating pybind11). Later, javascript via WebAssembly was added as well. It's now at a point where it's very easy to just create a C++ library and use it from any of those languages without change. We're planning on slowly adding more languages as needed/requested. The next on the list are Swift and Kotlin.
It does not require any change to your existing public interface, but simply reads it and creates the bindings off of that. It should also work on Linux (Debian), MacOS, and Windows (Visual Studio). Here's a small demo if you'd like to test:
https://github.com/Tolc-Software/tolc-demo
And here are the repositories with the source code:
https://github.com/Tolc-Software/tolc - The executable
https://github.com/Tolc-Software/frontend.py - The python bindings generator
https://github.com/Tolc-Software/frontend.wasm - The WebAssembly bindings generator
https://github.com/Tolc-Software/Parser - The C++ parser
It is dual licensed with AGPL and, if someone wants, a commercial license as well.
Would be cool if someone finds it useful!
- An easier way to use C++ from other languages
-
A bindings compiler for C++
https://github.com/Tolc-Software/tolc - The executable and CMake wrappers
-
I cried at that moment.
I’m just gonna drop this here: https://github.com/Tolc-Software/tolc
What are some alternatives?
dyno - Runtime polymorphism done right
PhotonLibOS - Probably the fastest coroutine lib in the world!
Kalman - Kalman Filter
kelcoro - C++20 coroutine library
diskwrite - An alternative to the Linux `dd`, written in C.
ReactivePlusPlus - Implementation of async observable/observer (Reactive Programming) in C++ with care about performance and templates in mind in ReactiveX approach
Reduct Storage - A time series database for storing and managing large amounts of blob data [Moved to: https://github.com/reductstore/reductstore]
tinyformat - Minimal, type safe printf replacement library for C++
Lyra - A simple to use, composable, command line parser for C++ 11 and beyond
scnlib - scanf for modern C++
SAFD-algorithm - An app to compute the coefficients of a function development in a spherical harmonics convergent series.