C++ - Reddit – Telegram
C++ - Reddit
226 subscribers
48 photos
8 videos
24.3K links
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
Download Telegram
Sorting Comparator function how they works internally ?

static bool cmp(int a, int b){
        return tostring(a) + tostring(b) >
               tostring(b) + tostring(a);
    }

https://redd.it/1pqdtxp
@r_cpp
Latest News From Upcoming C++ Conferences (2025-12-19)

OPEN CALL FOR SPEAKERS

CppCon Academy 2026 – CppCon Academy is asking for instructors to submit proposals for pre- and post-conference classes and/or workshops to be taught in conjunction with next year’s CppCon 2026.
Workshops can be online or onsite and interested instructors have until January 30th to submit their workshops. Find out more including how to submit your proposal at https://cppcon.org/cfp-for-2026-classes/
ACCU on Sea 2026 – Interested speakers have until January 11th to submit their talks which is scheduled to take place on 17th – 20th June. Find out more including how to submit your proposal at [https://accuconference.org/callforspeakers](https://accuconference.org/callforspeakers)

OTHER OPEN CALLS

(NEW) C++Online
(NEW) Call For Online Volunteers – Attend C++Online 2026 FOR FREE by becoming an online volunteer! Find out more including how to apply at [https://cpponline.uk/call-for-volunteers/](https://cpponline.uk/call-for-volunteers/)
(NEW) Call For Online Posters – Get a FREE ticket to C++Online 2026 by presenting an online poster in their virtual venue which can be on any C++ or C++ adjacent topic. Find out more and apply at https://cpponline.uk/posters
(NEW) Call For Open Content – Get a FREE ticket to C++Online 2026 by…
Presenting a talk, demo or workshop as open content at the start or end of each day of the event. Find out more and apply at https://cpponline.uk/call-for-open-content/
Running a meetup or host a social event like a pub quiz or a tetris tournament.  Find out more and apply at [https://cpponline.uk/call-for-meetups/](https://cpponline.uk/call-for-meetups/)
If you run a meetup, then discounted entry will be given for other members of your meetup. 

TICKETS AVAILABLE TO PURCHASE

The following conferences currently have tickets available to purchase

ACCU on Sea (15th – 20th June) – You can buy super early bird tickets at [https://accuconference.org/booking](https://accuconference.org/booking) with discounts available for ACCU members.

OTHER NEWS

(NEW) C++Online 2026 Announced (11th – 13th March) – The C++Online 2026 Conference has been announced and will run as an online only conference and will also include post-conference workshops (separate registration required). Find out more at https://cpponline.uk/announcing-cpponline-2026-11th-13th-march/
(NEW) C++Now 2026 Announced (4th – 8th May) – The C++Now 2026 Conference has been announced and will run as an in-person only conference in Aspen, Colorado. Find out more at [https://cppnow.org/announcements/2025/12/announcing-cppnow-2026/](https://cppnow.org/announcements/2025/12/announcing-cppnow-2026/)
C++Online 2026 Call For Reviews Open – The C++Online team are looking for people to review talks that were submitted to be considered for the C++ Online 2026 programme. Please visit https://speak.cpponline.uk/ and login or make an account to review the talks with reviews accepted until December 22nd.

https://redd.it/1pqpv7p
@r_cpp
Ways to generate crash dumps for crash handling?

Hi there!
I was interested in generating crash minidumps cross platform for debugging-- I've found them to be a useful tool for debugging. I know you can use SEH on Windows, but that's exclusive to windows, and cannot be mixed with C++ exception handling. Is there a way to write an exception handler that can grab what the state of memory looked like, as well as the call stack in order to generate a crash report/crash dump? I know there's also like google breakpad/crashpad but it seemed like I'd need to add in chromium to my project, and there's also Sentry, but I wanted to see what other options I have.

https://redd.it/1pqy1hm
@r_cpp
POC of custom conditional warnings exploiting C++26's expansion statements and deprecated attribute for compile-time debugging

I came up with this hacky trick for custom compiler warnings (not errors) that are conditional on a compile-time known bool. I know it is not the prettiest error message but it at least has all the relevant information to be useful for compile-time (print) debugging. Thought it would be cool to share here and please let me know if there is a better way to achieve this or if it can be achieved in C++23 or prior. Check it out here: https://godbolt.org/z/br6vGdvex

https://redd.it/1pr7dpm
@r_cpp
5hrs spent debugging just to find out i forgot to initialize to 0 in class.

Yup, it finally happened.

I am making a voxel terrain generation project to learn OpenGL. It was my abstraction of vertex arrays. Initially, when I created this class, it generated an ID in the constructor, but then when I introduced multithreading, I needed to stop doing that in the constructor (bad design, I know—need to study design patterns). So I introduced a boolean to initialize it when the first call to Bind() is made. But I didn't set it to false at that time. I saw chunks rendering, but there were gaps between them. So I started debugging, and honestly, the VertexArray class wasn't even on my mind. I just printed the VAO values in the output along with some other data. Although the values were somewhat random, I ignored it because OpenGL only guarantees unique unused values, not how they're generated. But then in the middle, I saw some were small and continuous like 1, 2, ..., 10. Then I put a print statement in the Generate() function of VertexArray and realized it wasn't even being called.

Yup, that's my rant. And here's the ugly code I wrote:

cpp

class VertexArray {
public:
explicit VertexArray(bool lazy = false);
~VertexArray();

// Returns the vertex array ID
GLuint id() const { return arrayid; }
void Generate();

// Binds this vertex array
void Bind();
void UnBind();

// Adds and enables the attribute
void AddAttribute(Attribute attribute);

private:
GLuint arrayid{};
};

https://redd.it/1prafjr
@r_cpp
Implicit contract assertions: systematizing eliminating all undefined behavior for C++

https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3100r5.pdf

https://redd.it/1prhmt8
@r_cpp
Decent tooling for concept autocompletion?

* The noscript pretty much explains itself. Before concepts I could at least give VS an instance from the codebase, and IntelliSense worked fine, but with concepts now, sometimes it feels like I am coding on Notepad. Tried CLion, and it is not any better. I understand the technical complexities that come with code completion with concepts, but I want to hear your view on this anyway.

https://redd.it/1prnkb2
@r_cpp
Jubi - Lightweight 2D Physics Engine

Jubi is a passion project I've been creating for around the past month, which is meant to be a lightweight physics engine, targeted for 2D. As of this post, it's on v0.2.1, with world creation, per-body integration, built-in error detection, force-based physics, and other basic needs for a physics engine.

Jubi has been intended for C/C++ projects, with C99 & C++98 as the standards. I've been working on it by myself, since around late-November, early-December. It has started from a basic single-header library to just create worlds/bodies and do raw-collision checks manually, to as of the current version, being able to handle hundreds of bodies with little to no slow down, even without narrow/broadphase implemented yet. Due to Jubi currently using o(n²) to check objects, compilation time can stack fast if used for larger scaled projects, limiting the max bodies at the minute to 1028.

It's main goal is to be extremely easy, and lightweight to use. With tests done, translated as close as I could to 1:1 replicas in Box2D & Chipmunk2D, Jubi has performed the fastest, with the least amount of LOC and boilerplate required for the same tests. We hope, by Jubi-1.0.0, to be near the level of usage/fame as Box2D and/or Chipmunk2D.

Jubi Samples:

#define JUBIIMPLEMENTATION
#include "../Jubi.h"

#include <stdio.h>

int main() {
    JubiWorld2D WORLD = Jubi
CreateWorld2D();

// JBody2DCreateBox(JubiWorld2D *WORLD, Vector2 Position, Vector2 Size, BodyType2D Type, float Mass)
    Body2D *Box = JBody2D
CreateBox(&WORLD, (Vector2){0, 0}, (Vector2){1, 1}, BODYDYNAMIC, 1.0f);
   
    // ~1 second at 60 FPS
    for (int i=0; i < 60; i++) {
        Jubi
StepWorld2D(&WORLD, 0.033f);

        printf("Frame: %02d | Position: (%.3f, %.3f) | Velocity: (%.3f, %.3f) | Index: %d\n", i, Box -> Position.x, Box -> Position.y, Box -> Velocity.x, Box -> Velocity.y, Box -> Index);
    }
   
    return 0;
}

Jubi runtime compared to other physic engines:

|Physics Engine|Runtime|
|:-|:-|
|Jubi|0.0036ms|
|Box2D|0.0237ms|
|Chipmunk2D|0.0146ms|

Jubi Github: https://github.com/Avery-Personal/Jubi

https://redd.it/1prwf8o
@r_cpp
Best conference talks of 2025

As we all know that we are heading towards the end of this year so it would be great for you guys to share your favourite conference speech related to c++ happened in this year and also kindly mention the reason behind picking it as your #1 conference talk.

https://redd.it/1przzbc
@r_cpp
[OC] Tired of "blind" C++ debugging in VS Code for Computer Vision? I built CV DebugMate C++ to view cv::Mat and 3D Point Clouds directly.

Hey everyone,

As a developer working on **SLAM and Computer Vision projects in C++**, I was constantly frustrated by the lack of proper debugging tools in VS Code after moving away from Visual Studio's Image Watch. Staring at memory addresses for cv::Mat and std::vector<cv::Point3f> felt like debugging blind!

So, I decided to build what I needed and open-source it: [CV DebugMate C++](https://marketplace.visualstudio.com/items?itemName=zwdai.cv-debugmate-cpp).

It's a **VS Code extension** that brings back essential visual debugging capabilities for C++ projects, with a special focus on 3D/CV applications.

**🌟 Key Features**

**1.** 🖼️ **Powerful cv::Mat Visualization**

* Diverse Types: Supports various depths (uint8, float, double) and channels (Grayscale, BGR, RGBA).
* Pixel-Level Inspection: Hover your mouse to see real-time pixel values, with zoom and grid support.
* Pro Export: Exports to common formats like PNG, and crucially, TIFF for preserving floating-point data integrity (a must for deep CV analysis

**2.** 📊 **Exclusive: Real-Time 3D Point Cloud Viewing**

* Direct Rendering: Directly renders your **std::vector<cv::Point3f>** or **cv::Point3d** variables as an interactive 3D point cloud.
* Interactive 3D: Built on Three.js, allowing you to drag, rotate, and zoom the point cloud right within your debugger session. Say goodbye to blindly debugging complex 3D algorithm

**3. 🔍 CV DebugMate Panel**

[](https://github.com/dull-bird/cv_debug_mate_cpp/tree/main#-cv-debugmate-panel)

* Automatic Variable Collection: Automatically detects all visualizable OpenCV variables in the current stack frame.
* Dedicated Sidebar View: A new view in the Debug sidebar for quick access to all Mat and Point Cloud variables.
* Type Identification: Distinct icons for images (Mat) and 3D data (Point Cloud).
* One-Click Viewing: Quick-action buttons to open visualization tabs without using context menus

**4. Wide Debugger Support**

Confirmed compatibility with common setups: Windows (MSVC/MinGW), Linux (GDB), and macOS (LLDB). (Check the documentation for the full list).

**🛠 How to Use**

It's designed to be plug-and-play. During a debug session, simply Right-Click on your cv::Mat or std::vector<cv::Point3f> variable in the Locals/Watch panel and select "View by CV DebugMate".**🔗 Get It & Support**

The plugin is completely free and open-source. It's still early in development, so feedback and bug reports are highly welcome!

**VS Code Marketplace**: Search for CV DebugMate or zwdai

**GitHub Repository**: [https://github.com/dull-bird/cv\_debug\_mate\_cpp](https://github.com/dull-bird/cv_debug_mate_cpp)

If you find it useful, please consider giving it a Star on GitHub or a rating on the Marketplace—it's the fuel for continued bug fixes and feature development! 🙏

https://redd.it/1ps4a8n
@r_cpp
link me a bgfx guide

has anyone found a good guide on how to use the bgfx library? i have been searching for days and i only found bad ones

https://redd.it/1ps6lqv
@r_cpp
Constvector: Log-structured std:vector alternative – 30-40% faster push/pop

Usually std::vector starts with 'N' capacity and grows to '2 * N' capacity once its size crosses X; at that time, we also copy the data from the old array to the new array. That has few problems

1. Copy cost,
2. OS needs to manage the small capacity array (size N) that's freed by the application.
3. L1 and L2 cache need to invalidate the array items, since the array moved to new location, and CPU need to fetch to L1/L2 since it's new data for CPU, but in reality it's not.

std::vector's reallocations and recopies are amortised O(1), but at low level they have lot of negative impact. Here's a log-structured alternative (constvector) with power-of-2 blocks: Push: 3.5 ns/op (vs 5 ns std::vector) Pop: 3.4 ns/op (vs 5.3 ns) Index: minor slowdown (3.8 vs 3.4 ns) Strict worst-case O(1), Θ(N) space trade-off, only log(N) extra compared to std::vector.

It reduces internal memory fragmentation. It won't invalidate L1, L2 cache without modifications, hence improving performance: In the github I benchmarked for 1K to 1B size vectors and this consistently improved showed better performance for push and pop operations.
 
Github: https://github.com/tendulkar/constvector

Youtube: https://youtu.be/ledS08GkD40

Practically we can use 64 size for meta array (for the log(N)) as extra space. I implemented the bare vector operations to compare, since the actual std::vector implementations have a lot of iterator validation code, causing the extra overhead.

https://redd.it/1ps8k53
@r_cpp