-
Stay up-to-date with everything C++! Content directly fetched from the subreddit just for you. Join our group for discussions : @programminginc Powered by : @r_channels
kernel driver development roadmap please
I found one useful book about kernel driver development (have read many paragraphs) and currently reading an official Microsoft documentation. What would you recommend? Maybe some samples?
https://redd.it/1ihgb70
@r_cpp
Announcing Sparrow: C++20 Idiomatic APIs for the Apache Arrow Columnar Format
Hello, C++ community!
We are thrilled to announce the release of Sparrow, a new C++20 library that provides idiomatic APIs for the Apache Arrow Columnar Format.
# Key Features
Lightweight and Modern: Sparrow is designed to be a lightweight, modern implementation, ensuring that it is both efficient and easy to use.
Idiomatic APIs: The library provides array structures with idiomatic APIs, making it intuitive for C++ developers.
Convenient Conversions: Sparrow offers convenient conversions from and to the C interface, simplifying the process of integrating data in the Apache Arrow format into your applications.
Finally, Sparrow is licensed under the Apache License, Version 2.0, ensuring that it is open and accessible for a wide range of uses.
Currently, there are no recipes available on vcpkg or ConanCenter, but we are actively working on it. You can expect them to be available very soon. Stay tuned for updates!
Github: https://github.com/man-group/sparrow
And an introduction: https://johan-mabille.medium.com/sparrow-1f23817f6696
https://redd.it/1ihcvf9
@r_cpp
TypeSanitizer — Clang 21
https://clang.llvm.org/docs/TypeSanitizer.html
https://redd.it/1ih4kqa
@r_cpp
Data analysis in C++
I hear a lot that C++ is not a suitable language for data analysis, and we must use something like Python. Yet more than 95% of the code for AI/data analysis is written in C/C++. Let’s go through a relatively involved data analysis and see how straightforward and simple the C++ code is (assuming you have good tool which is a reasonable assumption).
Suppose you have a time series, and you want to find the seasonality in your data. Or more precisely you want to find the length of the seasons in your data. Seasons mean any repeating pattern in your data. It doesn’t have to correspond to natural seasons. To do that you must know your data well. If there are no seasons in the data, the following method may give you misleading clues. You also must know other things (mentioned below) about your data. These are the steps you should go through that is also reflected in the code snippet.
1. Find a suitable tool to organize your data and run analytics on it. For example, a DataFrame with an analytical framework would be suitable. Now load the data into your tool
2. Optionally detrend the data. You must know if your data has a trend or not. If you analyze seasonality with trend, trend appears as a strong signal in the frequency domain and skews your analysis. You can do that by a few different methods. You can fit a polynomial curve through the data (you must know the degree), or you can use a method like LOWESS which is in essence a dynamically degreed polynomial curve. In any case you subtract the trend from your data.
3. Optionally take serial correlation out by differencing. Again, you must know this about your data. Analyzing seasonality with serial correlation will show up in frequency domain as leakage and spreads the dominant frequencies.
4. Now you have prepared your data for final analysis. Now you need to convert your time-series to frequency-series. In other words, you need to convert your data from time domain to frequency domain. Mr. Joseph Fourier has a solution for that. You can run Fast Fourier Transform (FFT) which is an implementation of Discrete Fourier Transform (DFT). FFT gives you a vector of complex values that represent the frequency spectrum. In other words, they are amplitude and phase of different frequency components.
5. Take the absolute values of FFT result. These are the magnitude spectrum which shows the strength of different frequencies within the data.
6. Do some simple searching and arithmetic to find the seasonality period.
As I said above this is a rather involved analysis and the C++ code snippet is as compact as a Python code -- almost. Yes, there is a compiling and linking phase to this exercise. But I don’t think that’s significant. It will be offset by the C++ runtime which would be faster.
using DTDataFrame = StdDataFrame<DateTime>;
DTDataFrame df;
df.read("IcecreamProduction.csv", ioformat::csv2);
// These parameters must be carefully chosen
//
DecomposeVisitor<double> dv {
180, 0.08, 0.0001, decomposetype::additive
};
df.singleactvisit<double>("IceCreamProduction", dv);
const auto &trend = dv.gettrend();
auto &data = df.getcolumn<double>("IceCreamProduction");
// Optional: take the trend out
//
for (std::sizet i { 0 }; auto &datum : data)
datum -= trendi++;
// Optional: Differencing to take serial correlation out
//
double prevval { data[0] };
for (auto &datum : data) {
const double tmp = datum;
datum -= prevval;
prevval = tmp;
}
data[0] = data[1];
fftv<double> fft;
df.singleactvisit<double>("IceCreamProduction", fft);
// We assume the time series is per one unit of time
//
constexpr double samplingrate = 1.0;
const auto &mags = fft.getmagnitude();
double maxmagnitude = 0.0;
std::sizet dominantidx = 0;
for (std::sizet i { 0 }; i < mags.size(); ++i) {
const
Next episode of GPU Programming with TNL - this time it is about dense matrices in TNL.
https://www.youtube.com/watch?v=w9nYbWMailM
https://redd.it/1igufx0
@r_cpp
How to use std::span from C++20 (C++26 updates!)
https://www.cppstories.com/2023/span-cpp20/
https://redd.it/1igysnr
@r_cpp
sqliteorm v1.9.1
A new release of the legendary **sqlite\orm library! 🚀
This is a minor release—no uber features, but compared to other minor releases, this one is the least minor of all the minor ones!
Now, let’s go over the new features:
• New drop functions: storage.drop_table_if_exists, storage.drop_index_if_exists, and storage.drop_trigger_if_exists for those who needed alternatives to storage.drop_table, storage.drop_index, and storage.drop_trigger.
• Two new pragma fields: locking_mode and max_page_count.
• More convenient API for declaring FOREIGN KEY constraints when working with inherited mapped structures. Instead of writing:
foreignkey(&Classroom::studentid).references(column<Student>(&Base::id))
you can now write a shorter version:
foreignkey(&Classroom::studentid).references<Student>(&Student::id)
• CTE support for CRUD operations.
• Overloaded bitwise operators and unary minus.
• New example in the examples folder: any.cpp—a powerful demonstration of how to bind std::any to SQLite using sqlite_orm, allowing operations on std::any without additional serialization.
• VSCode integration: Added .vscode folder with preconfigured settings. Now, if you’re contributing to sqlite_orm, you can execute important actions directly from VSCode using Command Palette → Run Task. You can trigger formatting, run the amalgamation script, and execute unit tests right from your IDE!
• Optimized serialization: Removed unnecessary parentheses—fewer bytes mean lower memory consumption.
• More constexpr functions for better compile-time evaluation.
• Bug fixes & improvements: 4 bugs fixed + 3 important refinements applied.
Enjoy the update! 🚀✨
https://github.com/fnc12/sqlite\_orm/releases/tag/v1.9.1
https://redd.it/1igwdcr
@r_cpp
Monitor GCC compile time
https://developers.redhat.com/articles/2025/01/22/monitor-gcc-compile-time
https://redd.it/1igtku1
@r_cpp
IEConcurency: A Concurrency Library and Micro-Benchmarking Playground
For those interested in exploring concurrency or micro-benchmarking, I’ve developed a c++ library that includes a collection of concurrent data structures/sync primitives. Additionally, it features a dedicated benchmarking branch with all the necessary submodules preconfigured, easy to dive into micro-benchmarking against boost right away. This Wiki is good place to start.
Any feedback/criticism is welcome.... contributions as well.
https://redd.it/1igf5mg
@r_cpp
Which programming language is used in china, Rusia and brics countries?
https://redd.it/1ig83f7
@r_cpp
Feedback about project
I developed a logger in C++23 and I need opinions so I can make it better, any feedback would be very appreciated!
https://github.com/adrianovaladar/logorithm
https://redd.it/1ifye06
@r_cpp
c++ development resources
hi
working on react and NextJs for more than 2.5 yrs now .. i have started hated it.
because everything is so much coated .. i don't understand a bit whats going on under the hood.
can anyone please link some tutorials/courses for c++ development .. using which i can get a job as a c++ developer.
https://redd.it/1ifw464
@r_cpp
Project with only CPP
I’m a complete beginner and have started learning CPP. What project can I do or build with just CPP Only? Most CPP project I’ve seen include other programming language.
https://redd.it/1iffv5k
@r_cpp
Should I use repository pattern for sqlite3 database for my cpp service?
Hi all
I have a C++ service which connects to a sqlite3 database. Right now I have a couple of tables in it but I expect that the total number of tables to grow.
I don't have any complex joins as well, which I expect to come soon.
Should I use the repository and entity pattern to create a solve this generic problem?
https://redd.it/1if76f1
@r_cpp
C++ learning resource for back-end/embedded?
Some of the embedded courses require you to have particular MCUs, kits etc.
What if you only have a good laptop and that's it? I'll be able to get STM32/raspberry pi after 3 months, but for the first 3 months, I'd like to just learn C++ that will be helpful to me later as an embedded programmer. My embedded goals would be knowing how to write STM32 code, write linux drivers for various cameras, audio codecs, sensors, display stuff etc.
I already have Visual studio, but also have ubuntu installed as a second OS, so pretty flexible here. Right now I'm learning about assembly (just to get a feel of what happens under the hood).
I know a little bit of python, and already know basics of C (pointers, loops, structs etc).
I know Ritchie's book is getting recommended, but I wish there was a resource that would allow me to build a project. Like to put to use my C++ skills right away, so to speak. Again, this is for junior level for now.
https://redd.it/1if4nf4
@r_cpp
Hello So I was trying to make a ImGui Menu from a picture but for me it’s imposible
Im new To ImGui I want a style of ImGui for my little proyect but I have sketch ✍️ but I don’t know how I can code it into ImGui anny one can help me out ?
https://redd.it/1ihejg2
@r_cpp
Can I put import inside the global module fragment?
So I am working on importizer that automatically create a module from a header file. It does so by collecting preprocessor directives, especially conditional ones, that has a #include inside and recreate it on top. For example:
// File.h
#pragma once
#ifdef COND
#include <vector>
#include <modularizedHeader.h>
#endif
will create this preamble
module;
#ifdef COND
#include <vector>
#endif
export module File;
#ifdef COND
import modularizedHeader;
#endif
which repeats the condition twice. With more complex conditions, the length will very quickly get out of hand.
Can I put import in the GMF like this to save some space?
module;
#ifdef COND
#include <vector>
import modularizedHeader;
#endif
export module File;
I was suspicious at first so I tested this approach on Godbolt (try putting the import into the GMF), and it's fine. I even read the C++ standard for modules, and I don't see any regulation about their location. Moreover, on cppreference, only preprocessing directives can go into the GMF, and import does count as one.
Is there any problem with doing it like this, and is there a better way to repeat the condition only once?
https://redd.it/1ihbb9f
@r_cpp
double val = std::fabs(magsi);
if (val > maxmagnitude) {
maxmagnitude = val;
dominantidx = i;
}
}
const double dominantfrequency =
double(dominantidx) * samplingrate / double(mags.size());
const double period = 1.0 / dominantfrequency;
std::cout << "Max Magnitude: " << maxmagnitude << std::endl;
std::cout << "Dominant Index: " << dominantidx << std::endl;
std::cout << "Dominant Frequency: " << dominantfrequency << std::endl;
std::cout << "Period: " << period << std::endl;
https://redd.it/1ih417z
@r_cpp
Managing large projects is already mentally taxing, CMake and C++ make it impossible for me. How do you guys do it?
Every library needs to be included, built in 1 of 5 completely different ways, or its binaries downloaded, how do you guys keep track of all of these things? Setting things up takes up hours of frustrating error hunting and by the end I'm too exhausted to work on my actual project.
Am I missing something? Am I just not built for this?
https://redd.it/1ih377d
@r_cpp
New C++ Conference Videos Released This Month - February 2025
CppCon
2025-01-27 - 2025-02-02
Refactoring C++ Code for Unit testing with Dependency Injection - Peter Muldoon - [https://youtu.be/as5Z45G59Ws](https://youtu.be/as5Z45G59Ws)
C++ Under the Hood: Internal Class Mechanisms - Chris Ryan - https://youtu.be/gWinNE5rd6Q
Secrets of C++ Scripting Bindings: Bridging Compile Time and Run Time - Jason Turner - [https://youtu.be/Ny9-516Gh28](https://youtu.be/Ny9-516Gh28)
Building Safe and Reliable Surgical Robotics with C++ - Milad Khaledyan - https://youtu.be/Lnr75tbeYyA
ISO C++ Standards Committee Panel Discussion 2024 - Hosted by Herb Sutter -https://youtu.be/GDpbM90KKbg
Audio Developer Conference
2025-01-27 - 2025-02-02
Keynote: Foundation Models Don’t Understand Me - Lessons From AI Lutherie for Live Performances - Manaswi Mishra - https://youtu.be/SnbJpvz86SM
Shrink Your Virtual Analog Model Neural Networks! - Christopher Clarke - [https://youtu.be/lZxfv0euB98](https://youtu.be/lZxfv0euB98)
In Praise of Loudness - Samuel Fischmann - https://youtu.be/0Hj7PYid\_tE
https://redd.it/1igu067
@r_cpp
C++ Show and Tell - February 2025
Use this thread to share anything you've written in C++. This includes:
* a tool you've written
* a game you've been working on
* your first non-trivial C++ program
The rules of this thread are very straight forward:
* The project must involve C++ in some way.
* It must be something you (alone or with others) have done.
* Please share a link, if applicable.
* Please post images, if applicable.
If you're working on a C++ library, you can also share new releases or major updates in a dedicated post as before. The line we're drawing is between "written in C++" and "useful for C++ programmers specifically". If you're writing a C++ library or tool for C++ developers, that's something C++ programmers can use and is on-topic for a main submission. It's different if you're just using C++ to implement a generic program that isn't specifically about C++: you're free to share it here, but it wouldn't quite fit as a standalone post.
Last month's thread: https://www.reddit.com/r/cpp/comments/1hrrkvd/c_show_and_tell_january_2025/
https://redd.it/1igxv0j
@r_cpp
How to implement C23 #embed in GCC 15
https://developers.redhat.com/articles/2025/01/30/how-implement-c23-embed-gcc-15
https://redd.it/1igtu7w
@r_cpp
IDE suggestion
I am Starting to learn C++ from today onwards
Which IDE should I use
https://redd.it/1igntgh
@r_cpp
Numerical Relativity 103: Raytracing numerical spacetimes
https://20k.github.io/c++/2025/02/02/nr103.html
https://redd.it/1ig96y7
@r_cpp
Learning C++ through projects
I have been doing a lot with robotics developement recently, ROS to be more percise, but my issue is I never really learned or worked with C++.
I went through the learncpp.com and some other cpp learn site, but I would really love to learn through some projects, but I have no idea where to start.
Does anyone have any good recommendations for where could I learn C++ throughout small projects and tasks? Preferably with solutions or code explanations alongside to give me a bit of guidance on how things should be.
I intend to move onto working with openCV in the future and maybe even embedded systems on the long run.
Thanks!
https://redd.it/1ifzc0a
@r_cpp
Compile Time Metaprogramming Examples
https://github.com/FlyingRhenquest/types
https://redd.it/1ifykb1
@r_cpp
The Old New Thing: Creating a generic insertion iterator, part 2
https://devblogs.microsoft.com/oldnewthing/20250131-00/?p=110823
https://redd.it/1ifon3b
@r_cpp
Open Source Tool For Painting Normal Maps For 2D Pixel Art
Hello all, I began developing a tool for artists to paint normal maps for 2D sprites. The project is open source. If anyone is looking for something C++ and easy to get into to this would be a good one. I will be continuing to add issues in the following days. It is very barebones and I could use some help.
https://github.com/laspencer91/2d-normal-map-painter
Thanks and enjoy!
https://redd.it/1if6z8g
@r_cpp
Template concepts in C++20
I like the idea of concepts. Adding compile time checks that show if your template functions is used correctly sounds great, yet it feels awful. I have to write a lot of boilerplate concept code to describe all possible operations that this function could do with the argument type when, as before, I could just write a comment and say "This function is called number_sum() so it obviously can sum only numbers or objects that implement the + operator, but if you pass anything that is not a number, the result and the bs that happens in kinda on you?". Again, I like the idea, just expressing every single constraint an object needs to have is so daunting when you take into account how many possibilities one has. Opinions?
https://redd.it/1if5jfj
@r_cpp
I made a header-only Win32 file-mapping library :)
https://github.com/Rhidian12/rapidio
https://redd.it/1ierhn3
@r_cpp