-
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
Resources for learning about the C++ memory model and memory ordering in general
Hi. I’ve watched Herb Sutter’s Atomic Weapons lectures, read C++ Concurrency in Action, and gone through a few blog posts, but I still don’t feel I fully understand concepts like sequential consistency and memory ordering. Are there any other resources that explain these topics more clearly?
https://redd.it/1ngqs6m
@r_cpp
Safe C++ proposal is not being continued
https://sibellavia.lol/posts/2025/09/safe-c-proposal-is-not-being-continued/
https://redd.it/1ngjemb
@r_cpp
cppreference missing filter by standard?
There used to be a very useful feature on cppreference where you could specify a standard version and the API would be filtered to represent the state at exactly that standard. No more (constexpr since C++20) or (until C++17) etc etc. Is this gone or am I just missing something? It was a very useful feature to filter out unhelpful info about other standards when I'm focused on exactly one.
https://redd.it/1nfywfj
@r_cpp
manual clang prebuilt install
So I needed to install a specific version of clang llvm on my debian system. https://releases.llvm.org/download.html#7.0.1
but I had no idea what to actually do... So I tried some things.
first I installed them as the usual /usr/include lib bin etc but that wasn't right so I installed it to /usr/lib/clang/VER/ but for some reason it doesnt look in /usr/lib/clang/VER/include/c++/v1/
like I have no idea I hate this... so I copied everything there into /usr/include, then I heard that I somehow didn't have the glibc headers (apt doesnt work btw) and I extracted the include from the glibc source code into /usr/include but still doesnt workkkkkkk
In file included from <stdin>:1:
In file included from /usr/include/vector:269:
In file included from /usr/include/iosfwd:90:
/usr/include/wchar.h:2:11: fatal error: 'wcsmbs/wchar.h' file not found
\# include <wcsmbs/wchar.h>
\^\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~
1 error generated.
https://redd.it/1nf4abc
@r_cpp
is Clion good?
hi, just wanted to ask if Clion from jetbrains is anygood as an ide and if you would suggest any others.
im completely new to C++ and wanted to ask which IDEs people tend to use ( I am not new to programming and usually code in Python and C # , and i use the JetBrains IDEs for those since I get them for free as a student)
https://redd.it/1nezaoh
@r_cpp
cppstat - C++ Compiler Support Status
https://cppstat.dev/
https://redd.it/1nexqz9
@r_cpp
Guide: C++ Instrumentation with Memory Sanitizer
https://systemsandco.dev/2025/07/31/msan.html
https://redd.it/1nej0nj
@r_cpp
Learncpp.com fixed
https://s4qc.github.io/blogs/LearnCppFixed/
https://redd.it/1ne7iwy
@r_cpp
Parallel C++ for Scientific Applications: Development Environment
https://www.youtube.com/watch?v=ORU5G2u2BuE
https://redd.it/1ne9bb4
@r_cpp
Here is a minimalist tickle for your fancy ...
... stripped from an old project (hope I got formatting right).
# -*- mode: Makefile; -*-
OSNAME := $(shell uname)
WARNFLAGS =
CXXFLAGS = -g -O -std=c++23 $(WARNFLAGS)
CPPFLAGS = -I. -I..
LDFLAGS =
LIBS =
DEPENDDIR = ./.deps
DEPENDFLAGS = -M
SRCS := $(wildcard *.cc)
OBJS := $(patsubst %.cc,%.o,$(SRCS))
TARGETS = someprog
all: $(TARGETS)
DEPS = $(patsubst %.o,$(DEPENDDIR)/%.d,$(OBJS))
-include $(DEPS)
$(DEPENDDIR)/%.d: %.cc $(DEPENDDIR)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(DEPENDFLAGS) $< >$@
$(DEPENDDIR):
@[ ! -d $(DEPENDDIR) ] && mkdir -p $(DEPENDDIR)
%: $(OBJS)
$(CXX) $(LDFLAGS) -o $@ $^ $(LIBS)
%.o: $(SRCS)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
%: %.cc
.PHONY: clean
clean:
rm -rf $(OBJS) $(TARGETS) $(DEPENDDIR)
https://redd.it/1ne847u
@r_cpp
Good Library for a 2D RPG game?
I want to start learning how to make an actual game with the windows and stuff with C++. What libraries do I need to make it on VS Code?
Also, I have made a fairly simple game before on Java, if there is anything similar to it.
https://redd.it/1ne26g3
@r_cpp
C++ Language Updates in MSVC Build Tools v14.50
https://devblogs.microsoft.com/cppblog/c-language-updates-in-msvc-build-tools-v14-50/
https://redd.it/1ndfmvk
@r_cpp
C++ Day 2025: Agenda & Free Tickets
Hi all!
The agenda for C++ Day 2025 is now live (all talks will be in English), and (free) tickets are available!
When & where: October 25, in Pavia (northern Italy)
What: a half-day of C++ talks + networking
Organized by the Italian C++ Community together with SEA Vision (our host & main sponsor). Two more sponsors are already confirmed, with others in the pipeline.
Check out the agenda & grab your ticket: http://italiancpp.org/cppday25
See you there!
Marco
https://redd.it/1nd7y1f
@r_cpp
announced their schedule for ADC 2025 which you can find at [https://conference.audio.dev/schedule/adc25/](https://conference.audio.dev/schedule/adc25/)
* **ACCU on Sea Registration Is Now Open** – You can buy super early bird tickets at [https://accuconference.org/booking](https://accuconference.org/booking) with discounts available for ACCU members.
Finally anyone who is coming to a conference in the UK such as C++ on Sea or ADC from overseas **may now be required to obtain Visas to attend**. Find out more including how to get a VISA at [https://homeofficemedia.blog.gov.uk/electronic-travel-authorisation-eta-factsheet-january-2025/](https://homeofficemedia.blog.gov.uk/electronic-travel-authorisation-eta-factsheet-january-2025/)
https://redd.it/1nclmuz
@r_cpp
Visual Studio 2026 Insiders is here! - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/visual-studio-2026-insiders-is-here/
https://redd.it/1ncpb0b
@r_cpp
non compatibility of msvc with ninja??
hey, so im working on a project, my setup is msvc for compiler and vs code for coding (with clangd and cmake extensions). the problem is intellisense, msvc by default generates sln and vcxproj files which are useless (as far as ik) for intellisense in vs code. then i used ninja for generating compile_command.json and it was working perfectly until i changed c++ version to 23 and used its features like `std::expected` and `std::optional`, the compile_command.json file does not contain anything for expected and optional so intellisense doesn't work (but the code gets compiled without any errors) but then i was advised to change compiler to clang for c and clang++ for cpp and generate compile_command.json, now the code doesnt compile but i do get the compile_command.json, then i change back to msvc and use the clang compile_command.json. but the problem here is intellisense picks up files from mingw folder and sometimes the definitions are different or wrong all together. is there anything that can be done?
{
"directory": "redacted/build-x8664-windows",
"command": "redacted\\toolchain\\VC\\Tools\\MSVC\\14.44.35207\\bin\\Hostx64\\x64\\cl.exe /nologo /TP -Iredacted\\lib -Iredacted\\vendor\\imgui -Iredacted\\vendor\\imgui\\backends -Iredacted\\vendor\\cppcoro\\include /DWIN32 /DWINDOWS /W3 /GR /EHsc /MDd /Zi /Ob0 /Od /RTC1 -std:c++latest /std:c++latest /permissive- /Zc:cplusplus /FoCMakeFiles\\t1.dir\\test\\t1.cpp.obj /FdCMakeFiles\\t1.dir\\ /FS -c redacted\\test\\t1.cpp",
"file": "redacted\\test\\t1.cpp",
"output": "CMakeFiles\\t1.dir\\test\\t1.cpp.obj"
}
{
"directory": "redacted/build-x8664-windows",
"command": "redacted\\toolchain\\VC\\Tools\\MSVC\\14.44.35207\\bin\\Hostx64\\x64\\cl.exe /nologo /TP -Iredacted\\lib -Iredacted\\vendor\\imgui -Iredacted\\vendor\\imgui\\backends -Iredacted\\vendor\\cppcoro\\include /DWIN32 /DWINDOWS /W3 /GR /EHsc /MDd /Zi /Ob0 /Od /RTC1 -std:c++latest /std:c++latest /permissive- /Zc:cplusplus /FoCMakeFiles\\t1.dir\\test\\t1.cpp.obj /FdCMakeFiles\\t1.dir\\ /FS -c redacted\\test\\t1.cpp",
"file": "redacted\\test\\t1.cpp",
"output": "CMakeFiles\\t1.dir\\test\\t1.cpp.obj"
}
this is a part of compile_command.json generated by msvc
{
"directory": "redacted/build-x8664-windows",
"command": "redacted\\clang++.exe -Iredacted/vendor/imgui -Iredacted/vendor/imgui/backends -std=gnu++23 -o CMakeFiles\\libimgui.dir\\vendor\\imgui\\imguidraw.cpp.obj -c redacted\\vendor\\imgui\\imguidraw.cpp",
"file": "redacted\\vendor\\imgui\\imguidraw.cpp",
"output": "CMakeFiles\\libimgui.dir\\vendor\\imgui\\imguidraw.cpp.obj"
}
{
"directory": "redacted/build-x8664-windows",
"command": "redacted\\clang++.exe -Iredacted/vendor/imgui -Iredacted/vendor/imgui/backends -std=gnu++23 -o CMakeFiles\\libimgui.dir\\vendor\\imgui\\imguidraw.cpp.obj -c redacted\\vendor\\imgui\\imguidraw.cpp",
"file": "redacted\\vendor\\imgui\\imguidraw.cpp",
"output": "CMakeFiles\\libimgui.dir\\vendor\\imgui\\imguidraw.cpp.obj"
}
this is a part of compile_command.json generated by clang
https://redd.it/1ngnjuq
@r_cpp
Seeking experiences: Best C++ project starter among four popular templates?
I’m choosing a C++ project template and want real-user feedback on these: friendlyanon/cmake-init, TheLartians/ModernCppStarter, filipdutescu/modern-cpp-template, cginternals/cmake-init. Please share quick pros/cons, cross-platform experience, CMake quality, CI/tooling, and whether you’d use it for production. Thanks!
https://redd.it/1nghsy7
@r_cpp
Why can't std::apply figure out which overload I intend to use? Only one of then will work!
https://devblogs.microsoft.com/oldnewthing/20250911-00/?p=111586
https://redd.it/1nfqbv6
@r_cpp
I want something like Python's uv for c++
uv for Python is a package and project manager. It provides a single tool to replace multiple others like pip, venv, pip-tools, pyenv and other stuff. Using uv is straightforward:
uv run myscript.py
And you're done. Uv takes care of the dependencies (specified as a comment at the beginning of the py file), the environment, even the Python version you need. It's really a no-bullshit approach to Python development.
I dream of something like that for C++. No more drama with cmake, compiler versions not being available on my OS, missing dependencies, the quest for libstdc++/glibc being to old on Linux that I never fully understood...
I'm a simple man, let me dream big 😭
https://redd.it/1nf1lga
@r_cpp
Pattern matching for modern C++
Hey guys! I wrote a header-only lib provides pattern matching support for C++. Anyone interested?
Link here:
https://github.com/sentomk/patternia
https://redd.it/1nez4v1
@r_cpp
simdjson Version 4.0.0 Released
https://github.com/simdjson/simdjson/releases/tag/v4.0.0
https://redd.it/1netob0
@r_cpp
Another month, another WG21 ISO C++ Mailing
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/#mailing2025-09
https://redd.it/1neg2js
@r_cpp
C++ Memory Management • Patrice Roy & Kevin Carpenter
https://youtu.be/ehuYrQvFcFg
https://redd.it/1necrl7
@r_cpp
Store complex structures into a binary file
Hello! I have these hypothetical structures:
typedef struct character{
unsigned int id;
std::array<char, 256> name;
std::vector<int> factions_id;
std::vector<skill> skills;
} character;
typedef struct skill{
std::array<char, 256> name;
float cooldown;
} skill;
How do I store a character into a binary file? I tried to convert the character to bytes and store it directly but researching I found out that vector does not "have" the raw data.
Thank you for your time!
https://redd.it/1nea1nd
@r_cpp
Modern C++23 Makefile for new projects
This is a modern makefile that I came up with for new projects that use the latest standard, with very very strict warnings to make sure your code is in good shape.
Just wanted to share because people keep saying that C++ is unsafe and that's BS, you just need to get your warnings right.
CXX := g++
WARNINGS := \
-Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -Wshadow \
-Wdouble-promotion -Wformat=2 -Wundef -Wcast-qual -Wcast-align=strict \
-Wnon-virtual-dtor -Wold-style-cast -Woverloaded-virtual -Wnull-dereference \
-Wunused -Wuninitialized -Winit-self -Wswitch-enum -Wredundant-decls \
-Wsuggest-override -Wimplicit-fallthrough=5 -Walloca -Werror
DEBUG_FLAGS := -O0 -g3 -fsanitize=address,undefined -fno-omit-frame-pointer
RELEASE_FLAGS := -O3 -march=native -DNDEBUG -flto
SRC_DIR := src
BUILD_DIR := build
BIN_DIR := bin
TARGET := myprogram
SRC := $(wildcard $(SRC_DIR)/*.cpp)
OBJ := $(SRC:$(SRC_DIR)/%.cpp=$(BUILD_DIR)/$(MODE)/%.o)
all: release
debug: MODE := debug
debug: CXXFLAGS = $(DEBUG_FLAGS) $(WARNINGS) -std=c++23
debug: dirs $(BIN_DIR)/$(TARGET)
release: MODE := release
release: CXXFLAGS = $(RELEASE_FLAGS) $(WARNINGS) -std=c++23
release: dirs $(BIN_DIR)/$(TARGET)
$(BIN_DIR)/$(TARGET): $(OBJ)
$(CXX) $(CXXFLAGS) $^ -o $@
$(BUILD_DIR)/$(MODE)/%.o: $(SRC_DIR)/%.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
dirs:
@mkdir -p $(BUILD_DIR)/debug $(BUILD_DIR)/release $(BIN_DIR)
clean:
rm -rf $(BUILD_DIR) $(BIN_DIR)
.PHONY: all debug release clean dirs
https://redd.it/1ne4fu5
@r_cpp
Pointers and References as Parameters and Arguments in Functions
Hey guys, I was working on a project for a class of mine, and I wanted to make sure that I could properly explain myself. This is for Computer Science 2, so I don't need it to be overly technical. I was working with a function that required one of the arguments to be a pointer, but it worked when I was passing a variable with the address-of operator (&). This seems kind of odd to me without some sort of explanation of datatype decay/conversion or something because a pointer holds an address, but isn't *exactly* an address. Could I get some explanations?
https://redd.it/1ndlz7n
@r_cpp
Sourcetrail (Fork) 2025.9.9 released
Hi everybody,
Sourcetrail 2025.9.9, a fork of the C++/Java source explorer, has been released with these changes:
C/C++: Add indexing of `auto` return types
GUI: Allow tab closing with middle mouse click
GUI: Improve layout of license window content
GUI: Add Open to context menu of start window
https://redd.it/1nd9o10
@r_cpp
I feel that I lack the logical thinking ability needed for programming. What should I do?
https://redd.it/1nd6bkn
@r_cpp
Latest News From Upcoming C++ Conferences (2025-09-09)
This Reddit post will now be a roundup of any **new** news from upcoming conferences with then the full list being available at [https://programmingarchive.com/upcoming-conference-news/](https://programmingarchive.com/upcoming-conference-news/)
**EARLY ACCESS TO YOUTUBE VIDEOS**
The following conferences are offering Early Access to their YouTube videos:
* **ACCU Early Access Now Open (£35 per year) –** Access all 91 YouTube videos from the 2025 Conference through the Early Access Program. In addition, gain additional benefits such as the journals, and a discount to the yearly conference by joining ACCU today. Find out more about the membership including how to join at [https://www.accu.org/menu-overviews/membership/](https://www.accu.org/menu-overviews/membership/)
* Anyone who attended the ACCU 2025 Conference who is NOT already a member will be able to claim free digital membership.
**OPEN CALL FOR SPEAKERS**
No Open Calls For Speakers
**OTHER OPEN CALLS**
* **ADC25 Call For Posters Now Open** – Anyone interested in submitting a poster can submit
* **A Virtual Poster** which will be shown online at ADC25 – [https://docs.google.com/forms/d/e/1FAIpQLSeJkXEzb–rWX-LBUErWA0gyfUX\_CXBCUYF5fwg\_agDwMppeQ/viewform?usp=dialog](https://docs.google.com/forms/d/e/1FAIpQLSeJkXEzb--rWX-LBUErWA0gyfUX_CXBCUYF5fwg_agDwMppeQ/viewform?usp=dialog)
* **A Physical Poster** which will be shown in-person at ADC25 – [https://docs.google.com/forms/d/e/1FAIpQLScI4gxxwkQNiyANMuluaCSE39C1ZhQOES3424YW8jK9tA291A/viewform?usp=dialog](https://docs.google.com/forms/d/e/1FAIpQLScI4gxxwkQNiyANMuluaCSE39C1ZhQOES3424YW8jK9tA291A/viewform?usp=dialog)
* **ADC Call For Online Volunteers Now Open** – Anyone interested in volunteering online for ADC 2025 on Monday 10th – Wednesday 12th November have until October 1st to apply. Find out more here [https://docs.google.com/forms/d/e/1FAIpQLScpH\_FVB-TTNFdbQf4m8CGqQHrP8NWuvCEZjvYRr4Vw20c3wg/viewform?usp=dialog](https://docs.google.com/forms/d/e/1FAIpQLScpH_FVB-TTNFdbQf4m8CGqQHrP8NWuvCEZjvYRr4Vw20c3wg/viewform?usp=dialog)
**TICKETS AVAILABLE TO PURCHASE**
The following conferences currently have tickets available to purchase
* **CppCon** – **Last chance to buy tickets** to attend CppCon 2025 in-person at Aurora, Colorado which starts next week. Visit [https://cppcon.org/registration/](https://cppcon.org/registration/) for more information.
* **ADCx Gather** – You can attend ADCx Gather for free. Find out how at [https://audio.dev/adcx-gather-info/](https://audio.dev/adcx-gather-info/)
* **C++ Under The Sea** – You can now buy tickets to attend C++ Under The Sea 2025 at Breda, Netherlands at [https://store.ticketing.cm.com/cppunderthesea2025/step/4f730cc9-df6a-4a7e-b9fe-f94cfdf8e0cc](https://store.ticketing.cm.com/cppunderthesea2025/step/4f730cc9-df6a-4a7e-b9fe-f94cfdf8e0cc)
* **\[NEW\] C++Day** – You can attend C++Day in-person for free by visiting [https://italiancpp.github.io/cppday25/#reservation](https://italiancpp.github.io/cppday25/#reservation)
* **ADC** – **Last chance to buy early bird tickets** to attend ADC 2025 online or in-person at Bristol, UK at [https://audio.dev/tickets/](https://audio.dev/tickets/).
* Early bird pricing for in-person tickets will end on September 15th.
* **Meeting C++** – You can buy online or in-person tickets at [https://meetingcpp.com/2025/](https://meetingcpp.com/2025/)
* **ACCU on Sea** – 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++Day Schedule Announced** – View the schedule for the free one day in-person event at [https://italiancpp.github.io/cppday25/#agenda](https://italiancpp.github.io/cppday25/#agenda)
* **ADCx Gather 25 Schedule Announced** – View the schedule for the free one day online event at [https://conference.audio.dev/schedule/adcxgather25/](https://conference.audio.dev/schedule/adcxgather25/)
* **ADC 2025 Schedule Announced** – ADC have
MV: A real time memory visualization tool for C++
Hey everyone,
I wanted to share a tool I’ve been working on that helps beginners visualize how C++ code interacts with memory (stack and heap) in real time. This proof of concept is designed to make understanding memory management more intuitive.
**Key Features:**
* Instantly see how variables affect the stack and the heap
* Visualize heap allocations and pointers with arrows
* Detect memory leaks and dangling pointers
This tool isn’t meant to replace platforms like PythonTutor, it’s a real time learning aid for students. To maintain this experience, I intentionally did not add support nor plan to support certain C++ features
Test out the tool and let me know what you think!
There may be bugs, so approach it with a beginner’s mindset and do let me know if you have any suggestions
The main application is a desktop app built with Tauri, and there’s also a web version using WASM:
* **GitHub Repo:** [https://github.com/humblepenguinn/mv](https://github.com/humblepenguinn/mv)
* **Web App:** [https://humblepenguinn.github.io/mv/](https://humblepenguinn.github.io/mv/)
P.S: I can't upload a video here, but you can find a demo of the tool in the repo README.
https://redd.it/1ncnqvz
@r_cpp