Heady
FunctionalPlus
Heady | FunctionalPlus | |
---|---|---|
3 | 10 | |
41 | 2,006 | |
- | - | |
0.0 | 7.7 | |
about 2 years ago | 17 days ago | |
C++ | C++ | |
MIT License | 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.
Heady
-
C++ Show and Tell - April 2022
I've recently made a small update to Heady, which is a C++ library and command-line tool used to create amalgamated single-header libraries from standard C++ source files. In the readme, I also describe how to prepare your source code for header amalgamation using four rules.
-
Example of a well organized header-only lib
If you're interested, I've made an open source utility called Heady that converts normal C++ library code into an amalgamated header file. You obviously have to follow a few rules and mark up your functions appropriately, but I've been using this successfully in my Jinx scripting library for a while now.
-
Jinx Scripting Language 1.3 released
In of the first sections in the tutorial and on the Github landing page, I mention that Jinx requires C++ 17, because I do make use of a few C++ 17-specific features. For example, one of those techniques makes it simpler to offer an amalgamated header-only version of the library. I specifically test on the big three: MSVC, Clang, and gcc, on Windows, Mac, and Linux respectively, so I typically don't use features not available on the latest versions of those OSes and their toolchains, or else offer conditional compilation.
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?
muzero-cpp - A C++ pytorch implementation of MuZero
C++ B-tree - Git mirror of the official (mercurial) repository of cpp-btree
seer - Seer - a gui frontend to gdb
v8pp - Bind C++ functions and classes into V8 JavaScript engine
nomenus-rex - A CLI utility for the file mass-renaming
dynamic_bitset - Simple Useful Libraries: C++17/20 header-only dynamic bitset
ctcsound - Python Bindings for Csound using ctypes. Can be used from python2.x and python3.x as well.
Hashmaps - Various open addressing hashmap algorithms in C++
Magic Enum C++ - Static reflection for enums (to string, from string, iteration) for modern C++, work with any enum type without any macro or boilerplate code
function2 - Improved and configurable drop-in replacement to std::function that supports move only types, multiple overloads and more
chrgfx - Converts to and from tile based graphics from retro video game hardware
sparsehash - C++ associative containers