TGViewer
Channel Public Channel
C++ - Reddit

C++ - Reddit

@r_cpp

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
Subscribers
229
Photos
48
Videos
8
Links
25.5K

Showing posts older than #24342 · Back to latest

Older Posts 20 shown
Post #24339 17
Post #24337 19
#pragma once -> two files are identical if their content is identical

It is that simple.
Two files are considered identical, if their content is identical.
Forget about paths, inodes, whatever other hacks.
Define it like this, it can probably fit in one paragraph of standardize, and be done with it.

After that, compilers are free to do any heuristics and optimizations that help to identify two files as identical, that is perfectly fine.
When the compiler cannot say for sure that two files are the same, it will have to read it, but guess what? If the files are actually different files, it has to read it anyway, to include it in the translation unit.

(btw I am watching the 2 hour video of rants about c++ right now, this issue just strikes me, as i have had enough of conversations about it myself.)

https://redd.it/1p5lg3t
@r_cpp
Reddit From the cpp community on Reddit Explore this post and more from the cpp community
Post #24336 14
Talk: Start a User Group, in 5 Easy\* Steps - Robert Schimkowitsch - [https://youtu.be/WkBJ79uZupo](https://youtu.be/WkBJ79uZupo)

2025-10-27 - 2025-11-02

* std::generator in C++23: When to use, and how to improve it - Johannes Kalmbach - [https://youtu.be/l9qKGGgnZYg](https://youtu.be/l9qKGGgnZYg)
* C++, C#, Rust or Python - Which is the Best Choice for Low Energy Consumption? - [https://youtu.be/DYu1NpuduWI](https://youtu.be/DYu1NpuduWI)
* Teaching an Old Dog New Tricks - A Tale of Two Emulators - Matt Godbolt - [https://youtu.be/gg4pLJNCV9I](https://youtu.be/gg4pLJNCV9I)

**ACCU Conference**

2025-11-17 - 2025-11-23

* What C++ Needs to be Safe - John Lakos - [https://youtu.be/6-MrKxsR\_\_I](https://youtu.be/6-MrKxsR__I)
* Learning To Stop Writing C++ Code (and Why You Won’t Miss It) - Daisy Hollman - [https://youtu.be/mpGx-\_uLPDM](https://youtu.be/mpGx-_uLPDM)
* What Is "Hello" in C++? - Nicolai M. Josuttis - [https://youtu.be/mMT5wLU1z-I](https://youtu.be/mMT5wLU1z-I)

2025-11-10 - 2025-11-16

* consteval All The Things? - Jason Turner - [https://youtu.be/q7OmdusczC8](https://youtu.be/q7OmdusczC8)
* The Past, Present and Future of Programming Languages - Kevlin Henney - [https://youtu.be/8-3QwoAmyuk](https://youtu.be/8-3QwoAmyuk)
* The Definitive Guide to Functional Programming in Cpp - Jonathan Müller - [https://youtu.be/lvlXgSK03D4](https://youtu.be/lvlXgSK03D4)

2025-11-03 - 2025-11-09

* What Makes Modern C++ Compelling For Programmers? - Gareth Lloyd - ACCU York Meetup - [https://youtu.be/nmQ0wbdY1ZU](https://youtu.be/nmQ0wbdY1ZU)
* How To Write a Rubik’s Cube Solver - Sam Saariste - [https://youtu.be/oNk5vm3jroQ](https://youtu.be/oNk5vm3jroQ)
* Optimising Data Building In Game Development - Dominik Grabiec - [https://youtu.be/KNAyUjeNewc](https://youtu.be/KNAyUjeNewc)
* Deliver Better Technical Presentations - Challenges Faced by Technical Speakers - Jack Simms - [https://youtu.be/p\_B7iPCoUgg](https://youtu.be/p_B7iPCoUgg)

2025-10-27 - 2025-11-02

* New (and Old) C++ Standard Library Containers - How to Choose the Right Container in C++26 and Beyond - Alan Talbot - [https://youtu.be/TtbYGico7bI](https://youtu.be/TtbYGico7bI)
* Testing, Preconditions, Coverage and Templates in Safety-Critical C++ Code - Anthony Williams - [https://youtu.be/L9jiRanMPnQ](https://youtu.be/L9jiRanMPnQ)
* Our Other C++ Interfaces - Bret Brown - [https://youtu.be/gFcXFPWxAEk](https://youtu.be/gFcXFPWxAEk)

**C++ Day**

2025-11-17 - 2025-11-23

* Interactive Program Design in C++ (Massimo Fioravanti) - [https://www.youtube.com/watch?v=-yHseDKXzvg](https://www.youtube.com/watch?v=-yHseDKXzvg)
* 8 Queens at Compile Time (Marco Marcello, Jonathan Marriott) - [https://www.youtube.com/watch?v=aAY4RX2gtD0](https://www.youtube.com/watch?v=aAY4RX2gtD0)

2025-11-10 - 2025-11-16

* SIMD substring in a string (Denis Yaroshevskiy) - [https://youtu.be/AZs\_iMxqAOY](https://youtu.be/AZs_iMxqAOY)
* Mocking the UART in C++ (Stefano Fiorentino) - [https://youtu.be/FaXLUWfDKyY](https://youtu.be/FaXLUWfDKyY)

2025-11-03 - 2025-11-09

* Zero or More (Alberto Barbati) - [https://youtu.be/HFwTTOV7B18](https://youtu.be/HFwTTOV7B18)
* Delegating Behaviors in C++ (Daniele Pallastrelli) - [https://youtu.be/nLSCG\_YIDh4](https://youtu.be/nLSCG_YIDh4)

https://redd.it/1p5lgte
@r_cpp
YouTube Lightning Talk: Start a User Group, in 5 Easy* Steps - Robert Schimkowitsch - C++ on Sea 2025 https://cpponsea.uk​ --- Lightning Talk: Start a User Group, in 5 Easy* Steps - Robert Schimkowitsch - C++ on Sea 2025 --- Don't have a C++-affine user group in range? 5 steps to get one started... --- Sponsored by Bloomberg: https://www.bloomberg.com…
Post #24335 16
New C++ Conference Videos Released This Month - November 2025 (Updated To Include Videos Released 2025-11-17 - 2025-11-23)

**CppCon**

2025-11-17 - 2025-11-23

* The Evolution of std::optional - From Boost to C++26 - Steve Downey - [https://youtu.be/fTbTF0MUsPA](https://youtu.be/fTbTF0MUsPA)
* Implement the C++ Standard Library: Design, Optimisations and Testing while Implementing Libc++ - Hui Xie - [https://youtu.be/iw8hqKftP4I](https://youtu.be/iw8hqKftP4I)
* Could C++ Developers Handle an ABI Break Today? - Luis Caro Campos - [https://youtu.be/VbSKnvldtbs](https://youtu.be/VbSKnvldtbs)
* Unsatisfied with the C++ Standard Library? Join The Beman Project! - River Wu - [https://youtu.be/knWAtBwEzaI](https://youtu.be/knWAtBwEzaI)
* The Joy of C++26 Contracts - Myths, Misconceptions & Defensive Programming - Herb Sutter - [https://youtu.be/oitYvDe4nps](https://youtu.be/oitYvDe4nps)

2025-11-10 - 2025-11-16

* Concept-based Generic Programming - Bjarne Stroustrup - [https://youtu.be/VMGB75hsDQo](https://youtu.be/VMGB75hsDQo)

**C++Now**

2025-11-17 - 2025-11-23

* Runtime Polymorphism with Freedom and Performance - External Polymorphism and Type Erasure - Eduardo Madrid - [https://youtu.be/-3Hu29GTdKg](https://youtu.be/-3Hu29GTdKg)
* How the Linux User/Kernel ABI Really Works - Driving the Linux Kernel Down at the Metal - Greg Law - [https://youtu.be/5UkVl0xK-3E](https://youtu.be/5UkVl0xK-3E)
* Lambda All the Things - Braden Ganetsky - [https://youtu.be/riYle7nt6ZM](https://youtu.be/riYle7nt6ZM)

2025-11-10 - 2025-11-16

* Growing Your Toolkit From Refactoring to Automated Migrations - Matt Kulukundis - [https://youtu.be/vqFEKvI0GmU](https://youtu.be/vqFEKvI0GmU)
* C++ as a Microscope Into Hardware - Linus Boehm - [https://youtu.be/KFe6LCcDjL8](https://youtu.be/KFe6LCcDjL8)
* Introduction to C++ Function Template Partial Ordering - Matheus Izvekov - [https://youtu.be/yY2qiL2oI2Y](https://youtu.be/yY2qiL2oI2Y)

2025-11-03 - 2025-11-09

* Techniques for Declarative Programming in C++ - Richard Powell - [https://youtu.be/zyz0IUc5po4](https://youtu.be/zyz0IUc5po4)
* C++ Generic Programming Considered Harmful? - Jeff Garland - [https://youtu.be/jXQ6WtYmfZw](https://youtu.be/jXQ6WtYmfZw)
* Coinductive Types in C++ Senders - Building Streams out of Hot Air - Steve Downey - [https://youtu.be/POXB5xRai74](https://youtu.be/POXB5xRai74)

2025-10-27 - 2025-11-02

* Overengineering max(a, b) - Mixed Comparison Functions, Common References, and Rust's Lifetime Annotations - Jonathan Müller - [https://youtu.be/o2pNg7noCeQ](https://youtu.be/o2pNg7noCeQ)
* The Sender/Receiver Framework in C++ - Getting the Lazy Task Done - Dietmar Kühl - [https://youtu.be/gAnvppqvJw0](https://youtu.be/gAnvppqvJw0)
* Effective CTest - a Random Selection of C++ Best Practices - Daniel Pfeifer - [https://youtu.be/whaPQ5BU2y8](https://youtu.be/whaPQ5BU2y8)

**C++ on Sea**

2025-11-17 - 2025-11-23

* Lightning Talk: Dying for Your Language - History of Esperanto - Guy Davidson - [https://youtu.be/C0j0F52o1ik](https://youtu.be/C0j0F52o1ik)
* Lightning Talk: Teaching GameDev - A C++ Centric Approach - Koen Samyn - [https://youtu.be/t0tLjI7FQ7M](https://youtu.be/t0tLjI7FQ7M)
* Lightning Talk: Let’s Make VLD Great Again - Alex Vanden Abeele - [https://youtu.be/9GAXSwpC68g](https://youtu.be/9GAXSwpC68g)

2025-11-10 - 2025-11-16

* Lightning Talk: Conan Strikes Back - Easy Migration to Conan 2.0 - Evgenii Seliverstov - [https://youtu.be/hHXLWyZi9IQ](https://youtu.be/hHXLWyZi9IQ)
* Lightning Talk: GPU Programming with C++ and Triton - Gil Hoben - [https://youtu.be/TwsFpZH8T2M](https://youtu.be/TwsFpZH8T2M)
* Lightning Talk: A Recipe for Designing Your Work Week as a Software Engineer - Sandor DARGO - [https://youtu.be/5oby3fGLBLE](https://youtu.be/5oby3fGLBLE)

2025-11-03 - 2025-11-09

* What C++ Needs to be Safe - John Lakos - [https://youtu.be/3eqhtK3hV9A](https://youtu.be/3eqhtK3hV9A)
* Why Technical Engineering Interviews Are Broken and How to Actually Make Them Better - Kristen Shaker - [https://youtu.be/WKVH0Lexw\_U](https://youtu.be/WKVH0Lexw_U)
* Lightning
YouTube The Evolution of std::optional - From Boost to C++26 - Steve Downey - CppCon 2025 https://cppcon.org​ --- The Evolution of std::optional - From Boost to C++26 - Steve Downey - CppCon 2025 --- Optionals were first proposed for C++ in 2005. Optional<T> , where T is constrained not to be a reference, was added in 2017. Optionals for…
Post #24333 20
Post #24332 21
Post #24330 17
Showcase HyCAN: A Modern C++20 CAN Framework for Linux (Non-root access, Epoll-based)

Hi everyone,

I'd like to share an open-source project I've been working on: HyCAN. It's a high-performance C++ CAN communication framework designed for Linux.

GitHub: HyCAN

Why did I build this? Working with SocketCAN on Linux often involves two pain points:

Root Privileges: You usually need sudo to bring up interfaces or configure bitrates, which is a security risk for user-space control algorithms.
Boilerplate: Writing raw socket / bind / epoll code is tedious and error-prone.Key Features:
🚀 Daemon Architecture: A system service manages the interfaces, allowing your app to run without root privileges.
⚡ High Performance: Based on epoll, handling 100k+ msgs/s with low CPU usage (\~20% on Ryzen 7) and 10µs latency.
🛠 Modern C++: Written in C++20, utilizing tl::expected for error handling and concepts for cleaner APIs.
🔒 Real-time Ready: Built-in support for SCHED_FIFO, CPU affinity, and memory locking.I'm looking for feedback on the architecture and API design. Feel free to roast my code!Thanks!

https://redd.it/1p5fkn1
@r_cpp
GitHub GitHub - RoboMaster-DLMU-CONE/HyCAN: Modern High-Performance Linux C++ CAN Communication Framework Modern High-Performance Linux C++ CAN Communication Framework - RoboMaster-DLMU-CONE/HyCAN
Post #24329 22
Disappointed with fmt library changes (12+)

This is kinda just a frustration rant, but I'm very disappointed with the changes in the fmt library, which are going to break my logging wrappers around it, and probably force me to find another solution soon (maybe even going back to using "dumb" C-style variadic macros again).

There are two main things which are frustrating me:

1. fmt::sprintf has been deprecated
2. fmt::format can no longer be used in wrapper functions, with compile time checking

The first issue is understandable, but is also a case of throwing the baby out with the bathwater. I get that it cannot be perfectly performance optimal, but breaking the ability to use printf-style formatting in the future will cause people with lots of format strings in this format to look elsewhere. In this case, maybe back to "dumb" C-style printf. Is that really better than slightly worse runtime performance with type and runtime safety? No, that's idiotic... but that's what the fmt library developers are apparently pushing for.

The second is more complicated: the new version broke this, but maybe because MSVC's compiler implementation is not current with C++23+? Unsure. String literals no longer work as format strings, but more significantly, you apparently cannot call fmt::format with parameters where the parameter values are not known at compile time, as is the case with almost every actual logging usage call (you need to wrap the format string arg in fmt::runtime, and give up compile time parameter type checking, apparently). This is a strict regression from fmt 10.x. Again, this seems like an asinine decision from the library authors, but maybe there's some idealized goal they are going for here; whatever the case, previous benefits are going away, which is making using the library a much less attractive proposition.

I'm curious if there is any fork attempt of the library to not break the above, which might be supported in the future, or if I will just need to migrate away from it at some point.

https://redd.it/1p4yf4v
@r_cpp
Reddit From the cpp community on Reddit Explore this post and more from the cpp community
Post #24327 20
On-device TTS model

Hello!

I'd like to introduce Supertonic, a newly open-sourced TTS engine designed for extreme speed and easy deployment across mobile, web, and desktop environments.

It includes example implementations in multiple languages, including C++.

Hope you find it useful!

Demo: https://huggingface.co/spaces/Supertone/supertonic
Code: https://github.com/supertone-inc/supertonic

https://redd.it/1p4okly
@r_cpp
huggingface.co Supertonic (TTS) - a Hugging Face Space by Supertone Lightning-Fast, On-Device TTS
Post #24325 18
Post #24323 18
All About C & C++ Strings: A Comprehensive Guide (motivated by building a search engine)

Hey all,

I recently encountered some fascinating challenges with C++ string types while building my C++ search engine, [Coogle](https://github.com/TheCloudlet/Coogle). This led me down a rabbit hole into the entire C and C++ string ecosystem, from the fundamental char types and their historical context in C, all the way through modern C++ features like std::basic\_string, Small String Optimization (SSO), Polymorphic Memory Resources (PMR), and various character encodings.

I've documented my findings in a detailed blog post, covering:

* The three distinct char types in C and their design rationale.
* The problems with C-style strings and how std::string solves them.
* The template nature of std::string (std::basic\_string) and its implications for type identity (which was key to my Coogle issue!).
* Advanced topics like char\_traits, custom allocators, C++17 PMR, and different character encodings.
* A timeline of string evolution in C and C++.

I hope this deep dive into std::string's internals and evolution is useful for anyone working with C++, especially those interested in compiler engineering, systems programming, or optimizing string usage.

You can read the full article here:
[https://thecloudlet.github.io/blog/cpp/cpp\_string/](https://thecloudlet.github.io/blog/cpp/cpp_string/)

Looking forward to your thoughts and discussions!

https://redd.it/1p4hnyk
@r_cpp
GitHub GitHub - TheCloudlet/Coogle: A C/C++ function finder inspired by Hoogle A C/C++ function finder inspired by Hoogle. Contribute to TheCloudlet/Coogle development by creating an account on GitHub.
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →