Skip to content

Tag Archives: C++

Practical C++26 reflection for Protobuf

Abstract The new edition of the C++ standard [1], expected to be released in 2026, will add reflection to C++. This will allow developers to write code that will examine the properties of classes, types, functions, and other elements and make changes to them. At the time of writing, reflection is not supported by the […]

Практична рефлексія C++26 для Protobuf

Вступ Нова редакція стандарту C++ [1], випуск якої очікується у нинішньому, 2026 році, додасть в C++ рефлексію (reflection). Це дозволить розробникам писати код, який досліджуватиме властивості класів, типів, функцій, та інших елементів і робити у них зміни. На момент написання статті, рефлексія хоча і не підтримується основними гілками компіляторів, проте доступна у відгалуженнях як clang […]

Off-target testing embedded projects with STUBMMIO

Introduction Off-target testing - building and running tests "on a development host or build server rather than on the target hardware" . [3] stubmmio is a C++ library for off-target embedded unit tests by stubbing MCU’s MMIO regions on a Linux machine. Memory-mapped I/O (MMIO) is a method of performing I/O through registers, mapped to […]

Logovod – macro-free allocation-free user-configurable logger front-end for C++

1. Features logovod features Three styles of use — with functions, ostream left shifts, format string Automatic space insertion of functional style Automatic printing of standard containers, tuples, variants, optional Compile or run-time priority levels Compile or run-time sinks Constrained message length Support for wide-char streams Priority levels according to RFC-5424 section-6.2.1

is_constexpr – a template to test if a function is constexpr

C++ allows declaring functions as constexpr. Such functions could be evaluated at compile time and used, for example in if constexpr(...). However, a non-constexpr function in this context is not allowed. So, if we want to write a template, accepting a function and using it in either if constexpr(...) or old plain if(...) we need […]

COJSON library for Arduino

COJSON library is also available as Arduino Studio .ZIP library: cojson.zip.

COJSON Code Generator

cojson v.2 offers an easy start option by using C++ code automatically generated from a JSON sample the user needs to parse or to write. To use this option just open codegen page, load or copy-&-paste your JSON and copy-&-paste or save the generated C++ code. And then build your application with cojson sources .

Enabling C++ for PSoC projects

PSoC — Programmable System on Chip - is an ARM Cortex based family of MCUs (wiki) by Cypress Semiconductor. Cypress offers developers a dedicated IDE - PSoC Creator. Unfortunately, PSoC Creator, (as of version 4.2) does not support C++, despite the underlying GGC Toolchain (arm-none-eabi-gcc-5.4) has C++ support at descent level. PSoC Creator has an […]

Building OpenSplice DDS for LinkIt Smart 7688 (and other OpenWRT on MIPS)

This post describes how to build OpenSplice DDS for LinkIt Smart 7688 and other OpenWRT targets

USB++ a C++14 template library for handy descriptor definition

Overview USB++ (usbplusplus) is a C++14 template library that gives the user a simple and error-prone way for defining USB descriptors, suitable for embedded projects.