In C++, templates allow you to write generic code, that can handle many types. But almost always, there will be types you can't handle.
In my case, I have a callback manager that supports functions that return a void, a number, a bool or a class...
This is a "classic C++" post, something that's been part of the language since conception: How to use an operator in your class design.
I developed a callback class. Your "gizmo that needs to callback something" would hold an instance of that class (...
When you work on a project, you often rely on external libraries and source code. If you use CMake as your build tool: it can download the artifacts for you. And make them available during build. By using FetchContent.
use case: your pro...
I'm experimenting with new C++ constructs. GCC 15 implements an interesting concept of the C++26 standard: A function can return a status, and either a value or an error message. In a previous post I tested one of C++ standard function...
I'm experimenting with new C++ constructs. GCC 15 implements an interesting concept of the C++26 standard: A function can return a status, and either a value or an error message.Example is the standard std::to_chars() function. It...
I'm experimenting with new C++ constructs.
In C++ callbacks and templates , I developed a generic object oriented callback handler using templates.In modern C++ modules I tried out an example that uses C++ modules...
Since C++20, a new feature is available: modules.
We're all used to C++ header and source files. And we all know their pros and cons. Because I'm reviewing a new C++ alternative for them, I'll focus on the cons of header files:
header file...
When writing reusable code, I like to be consistent and use standards. For C++, there are many flavours out there.
I've been looking around for guidance on writing modern C++ code, with templates. That's when I bumped into the µOS naming s...
The C++ Standard Template Library has a decent set of containers. std::array, std::vector, std::list, ...
When you write a software function, it can be useful to handle whatever container the user wishes to use.
In my little print function here...
I wrote a series of articles about GitHub Actions. To:
validate that no one submits code that breaks the build
automate nightly deploy and update online documentation
The flow below shows the current setup. Read it down to up, to understand wh...
I have a Raspberry Pico GPS library project. It comes with several examples. And each example can communicate to the GPS over I2C or UART.
Initially, it was a single-example project. I used a definition in the NMake config, that allow...
You can Make GitHub build your project. I'm using an Action to check out branches and build them, when a pull request is submitted. I adapted an existing flow from the Raspberry organisation. Here's what it does
check out the branch that's the ...
The title says it all. You can generate project documentation from the comments in the source files. I'm using doxygen for that. What I tried today (and succeeded in), is to make a GitHub action that:
kicks off a process on one of its...
This web page simply contains the ASCII table in a few formats.
Mobile View
Printable Version (Monochrome)
To print, click here to open the monochrome ASCII table in a web browser window, then print in Landscape format. I have tested ...
Codon, a Python-based compiler, allows Python scripts to achieve similar performance levels as the C/C++ programming language. (Image Credit: Cg_prodigy/pixabay)
At some point, new or experienced computer programmers have learned Python and realized...
Introduction
This blog follows on from my previous blog, which explained how to get started with the ARM Mbed OS 6.15 BLE API and how to develop a simple Button-LED BLE app.
I’m now taking it a step further and will be explaining how to develo...
Introduction
Arm, the owners Mbed OS, has been in the news recently following the decision to withdraw from the Nvidia acquisition. Whilst this had nothing to do with Mbed OS itself, it did somehow renew my interest in this free open source Internet...
I don't get over-excited about programming languages and their evolution easily.But it happened this time. C++ is introducing a new dialect. The 2020 standard. There are a number of things that are useful but I wouldn't consider them gro...
At this point, I will digress and turn the clock back, life was good we had the Internet, Ethernet and Microsoft could not spell or supported either. At that time for Ethernet cable, you had your choice of Thick (10Base-5), Thin (10Base-2), and or CA...
I will not stutter. C is one of the most powerful computer languages ever written. In this blog, I will show what an operator is.An operator in its simplest form would be: a added to b. In this case, the operator is added to. But you also have an ass...
Don't know if anyone is interested in this, but since i just finished my quick and dirty brute force solution of the Queens Chess Problem using Python i thought that maybe i should publish it to see what kind of feedback i will get: #!/usr/bin/p...
I have 4 sparkfun lummenati 3x3 bParts, I having a problem finding a code, i have them daisy chained would like to makea top hat bandany help would be greatly appreciatedthanks bob
IntroductionPython is one of the most used programming languages adopted as the high-level application development environment to develop in the embedded environment. This is due to its portability and how it is easy to program, together with its wid...