Jump to content
View in the app

A better way to browse. Learn more.

Horizon Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

The Standard C++ News

Latest from the ISO C++ Website.

  1. In today's post, I like to touch on a controversial topic: singletons. While I think it is best to have a codebase without singletons, the real-world shows me that singletons are often part of codebases. Singleton done right in C++ by Andreas Fertig From the article: Let's use a usage pattern for a singleton that I see frequently, a system-wide logger. A simple implementation can look like the following code: class Logger { Logger() = default; public: static Logger& Instance() { static Logger theOneAndOnlyLogger{}; return theOneAndOnlyLogger; } void Info(std::string_view msg) { std::print("Info: …

    • 0 replies
    • 0 views
  2. Once more the using std::cpp conference is here and they bring two interesting training workshops. Mastering std::execution: A Hands-On Workshop by Mateus Pusz. https://www.fundacion.uc3m.es/formacion/mastering-stdexecution-a-hands-on-workshop/ Function and Class Design with C++2x by Jeff Garland. https://www.fundacion.uc3m.es/formacion/function-and-class-design-with-c2x/ Both workshops happen in the post-conference day on March 19th in Madrid. You may also want to have a look to the list of speakers for the main conference. If you are one of the first 20 attendees to each workshops, your are eligible for a free ticket for the main conference. Vie…

    • 0 replies
    • 0 views
  3. Templates and metaprogramming considered as the big bad wolf of C++, and it’s time to stop being scared of this wolf, as it’s one of the most powerful creatures of C++. Talk: Who’s Afraid of the Big Bad Template by Coral Kashri From the description: In this talk I’ve demonstrated the power of this incredible creature, while I hope that this talk would be an easy enterence to this concept (pan intended), and to help you developing the anticipation to walk into the cave of metaprogramming. The talk was give on Core C++ 2025. View the full article

    • 0 replies
    • 8 views
  4. Templates and metaprogramming considered as the big bad wolf of C++, and it’s time to stop being scared of this wolf, as it’s one of the most powerful creatures of C++. Talk: Who’s Afraid of the Big Bad Template by Coral Kashri From the description: In this talk I’ve demonstrated the power of this incredible creature, while I hope that this talk would be an easy enterence to this concept (pan intended), and to help you developing the anticipation to walk into the cave of metaprogramming. The talk was give on Core C++ 2025. View the full article

    • 0 replies
    • 0 views
  5. Conferences are never just about the talks — they’re about time, travel, tradeoffs, and the people you meet along the way. After a year of attending several C++ events across formats and cities, this post is a personal look at how different conferences balance technical depth, community, and the experience of being there. 2025, A Year of Conferences by Sandor Dargo From the article: This year I had the chance to attend three conferences onsite, plus one online, and even a meetup in my hometown, Budapest. Depending on who you ask, maybe it’s not a lot — I know some speakers do twice as many. But if you ask my family, you’d probably get a different (and …

    • 0 replies
    • 0 views
  6. C++20 introduced coroutines. Quasar Chunawala, our guest editor for this edition, gives an overview. A Guest Editorial by Quasar Chunawala, Frances Buontempo From the article: You’ve likely heard about this new C++20 feature, coroutines. I think that this is a really important subject and there are several cool use-cases for coroutines. A coroutine in the simplest terms is just a function that you can pause in the middle. At a later point the caller will decide to resume the execution of the function right where you left off. Unlike a function therefore, coroutines are always stateful - you at least need to remember where you left off in the function b…

    • 0 replies
    • 1 view
  7. Filtering items from a container is a common situation. Bartłomiej Filipek demonstrates various approaches from different versions of C++. 15 Different Ways to Filter Containers in Modern C++ by Bartłomiej Filipek From the article: Do you know how many ways we can implement a filter function in C++? While the problem is relatively easy to understand – take a container, copy elements that match a predicate and the return a new container – it’s good to exercise with the C++ Standard Library and check a few ideas. We can also apply some modern C++ techniques, including C++23. Let’s start! The problem statement To be precise by a filter, I mean a…

    • 0 replies
    • 0 views
  8. std::chrono::high_resolution_clock sounds like the obvious choice when you care about precision, but its name hides some important caveats. In this article, we’ll demystify what “high resolution” really means in <chrono>, why this clock is often just an alias, and when—if ever—it’s actually the right tool to use. Time in C++: std::chrono::high_resolution_clock - Myths and Realities by Sandor Dargo From the article: If there’s one clock in <chrono> that causes the most confusion, it’s std::chrono::high_resolution_clock. The name sounds too tempting — who wouldn’t want “the highest resolution”? But like many things in C++, the details matter.…

    • 0 replies
    • 1 view
  9. Started by Horizon,

    Coroutines are powerful but require some boilerplate code. Quasar Chunawala explains what you need to implement to get coroutines working. Coroutines – A Deep Dive by Quasar Chunawala From the article: The following code is the simplest implementation of a coroutine: #include <coroutine> void coro_func(){ co_return; } int main(){ coro_func(); } Our first coroutine will just return nothing. It will not do anything else. Sadly, the preceding code is too simple for a functional coroutine and it will not compile. When compiling with gcc 15.2, we get the error shown in Figure 1. <source>: In function…

  10. Started by Horizon,

    Concurrency has many different approaches. Lucian Radu Teodorescu clarifies terms, showing how different approaches solve different problems. Concurrency Flavours by Lucian Radu Teodorescu From the article: Most engineers today use concurrency – often without a clear understanding of what it is, why it’s needed, or which flavour they’re dealing with. The vocabulary around concurrency is rich but muddled. Terms like parallelism, multithreading, asynchrony, reactive programming, and structured concurrency are regularly conflated – even in technical discussions. This confusion isn’t just semantic – it leads to real-world consequences. If the goal beh…

  11. With ASCII, it's very simple to find the next character in a string: you can just increment an index (i++) or char pointer (pch++). But what happens when you have Unicode strings to process? Finding the Next Unicode Code Point in Strings: UTF-8 vs. UTF-16 by Giovanni Dicanio From the article: Both UTF-16 and UTF-8 are variable-length encodings. In particular, UTF-8 encodes each valid Unicode code point using one to four 8-bit byte units. On the other hand, UTF-16 is somewhat simpler: In fact, Unicode code points are encoded in UTF-16 using just one or two 16-bit code units. (...) The functions have the following prototypes: // Returns the n…

  12. Memory-safety vulnerabilities remain one of the most persistent and costly risks in large-scale C++ systems, even in well-tested production code. This article explores how hardening the C++ Standard Library—specifically LLVM’s libc++—can deliver meaningful security and reliability gains at massive scale with minimal performance overhead. Practical Security in Production: Hardening the C++ Standard Library at massive scale by Louis Dionne, Alex Rebert, Max Shavrick, and Konstantin Varlamov From the article: Over the past few years there has been a lot of talk about memory-safety vulnerabilities, and rightly so—attackers continue to take advantage of the…

  13. Started by Horizon,

    Qt completes the recommended public cash offer to the shareholders of I.A.R. Systems Group From the article: On 4 July 2025, Qt Group Plc's ("Qt Group") wholly owned subsidiary The Qt Company Ltd ("The Qt Company" and together with Qt Group, "Qt"), announced a recommended public cash offer to the shareholders of class B shares (the "Shares" or, individually, a "Share") in I.A.R. Systems Group AB (publ) ("IAR"), to tender all their Shares at a price of SEK 180 in cash per Share (the "Offer"). The Shares in IAR are traded on Nasdaq Stockholm, Mid Cap. An offer document relating to the Offer was published on 15 August 2025. At the end of the acceptance period o…

  14. Thanks to James McNellis to giving an introduction to this crutial technique for protecting C++ applications, which he has practical experience with. A little Introduction to Control Flow Integrity - James McNellis - Keynote Meeting C++ 2025 by James McNellis Watch the video: View the full article

  15. Started by Horizon,

    This post is in response to two claims about coroutines: 1) Their reference function parameters may become dangling too easily, and 2) They are indistinguishable from regular functions from the declaration alone. Event-driven flows by Andrzej Krzemieński From the article: A canonical example of an event-driven flow is the handling of signals in C. Signals will be risen at unpredictable points in time, so rather than actively checking for them, we define a callback and associate it with the indicated signal: signal(SIGINT, on_interrupt); After having performed this association, we move on to doing other things. It is the implemen…

  16. Started by Horizon,

    Qt Jenny is a Java/Android JNI glue/proxy Qt code generator. You can find and get it from Maven Central. Qt Jenny is a fork of Jenny from LanderlYoung. The fork differs from the original one by supporting JNI call gluing with QJni - classes such as QJniObject. That brings the powers of Qt for Android and the magic of Android Java native APIs to Qt! Qt Jenny 1.0 Released by Rami Potinkara From the article: Have you heard about Jenny? No, I do not mean, the girl next door, nor the Spinning Jenny that started the industrial revolution in England in the 17th century. This one is a modern information age revolution, a code generator, a cuter Jenny. Got your…

  17. Very often the need arises in Windows C++ programming to convert text between Unicode UTF-16 (which historically has been the native Unicode encoding used by Windows APIs) and UTF-8 (which is the de facto standard for sending text across the Internet and exchanging text between different platforms). Converting Between Unicode UTF-16 and UTF-8 in Windows C++ Code by Giovanni Dicanio From the article: A detailed discussion on how to convert C++ strings between Unicode UTF-16 and UTF-8 in C++ code using Windows APIs like WideCharToMultiByte, and STL strings and string views. View the full article

  18. The Opening Keynote by Anthony Williams from Meeting C++ 2025 has been released. Software and Safety - Anthony Williams - Keynote Meeting C++ 2025 by Anthony Williams Watch now: View the full article

  19. Started by Horizon,

    Explore how the C++ standard evolved across versions with interactive side-by-side diffs C++ Standard Evolution Viewer by Jason Turner From the article: This site provides an interactive way to explore changes in the C++ standard by viewing side-by-side diffs of individual sections (identified by stable names like [array], [class.copy], [ranges.adaptors]). Each version transition below focuses on Tier 1 sections (major library components and language features) to provide the most educational value. View the full article

  20. PVS-Studio 7.40 has been released. The new version brings support for Visual Studio 2026 and Qt Creator 18, adds analysis of .NET 10 projects, enhances C# diagnostic rules, and includes other new features. PVS-Studio 7.40: support for Visual Studio 2026, Qt Creator 18, .NET 10, and more by Gleb Aslamov From the article: The new release introduces support for the fresh Visual Studio 2026. We're glad to present PVS-Studio plugin for Qt Creator 18.x. The plugin lets you run static analysis, view warnings, and handle your code directly within your IDE. Unreal Engine 5.5 brings a new tool called Horde, a platform that enables users to leverage CPU cycles on…

  21. Started by Horizon,

    Meeting C++ is hosting a job fair in October online and planning a job fair in November in Berlin at Meeting C++ 2025! Planning the next Meeting C++ job fairs by Jens Weller From the article: The next Meeting C++ online job fair is planned for October 14th & 15th, also I'd like to talk about the onsite job fair plans for Meeting C++ 2025! If you have open positions you should advertise them in the bi-weekly Meeting C++ Jobs Newsletter, which now also powers the candidate listing of Meeting C++ with 80+ international candidates at the moment. Â View the full article

  22. Started by Horizon,

    I recently published two posts about how C++26 improves std::format and the related facilities. (If you missed them, here are Part 1 and Part 2). Now itâ��s time to explore how you can format your own types using std::format. Format your own type (Part 1) by Sandor Dargo From the article: std::format was introduced in C++20 and is based on Victor Zverovichâ��s <fmt> library, which in turn was inspired by Pythonâ��s string formatting capabilities. Letâ��s skip the fancy formatting options and simply see how to interpolate values using std::format. #include <format> #include <iostream> #include <string> int …

  23. Registration is now open for CppCon 2025! The conference starts on September 13 and will be held in person in Aurora, CO. To whet your appetite for this yearâ��s conference, weâ��re posting some upcoming talks that you will be able to attend this year. Hereâ��s another CppCon future talk we hope you will enjoy â�� and register today for CppCon 2025! Changing /std:c++14 to /std:c++20 - How Hard Could It Be? Monday, September 15 15:15 - 16:15 MDT by Keith Stockdale Summary of the talk: Rare put in huge amounts of work to bring Sea of Thieves to PlayStation 5 and to upgrade from the old XDK and UWP platforms to the new GDK platform. In this sessio…

  24. Started by Horizon,

    A full day of C++ in Pavia (Italy) on October 25: C++ Day 2025  An event organized by the Italian C++ Community and SEA Vision. Sponsors: SEA Vision, ELT, Sigeo (and others in the pipeline).  All talks will be in English.  In a nutshell Launched in 2016, C++ Day is a community-driven event format by the Italian C++ Community, co-organized with external partners like companies and universities. The C++ Day 2025 will be held in person on October 25 in Pavia, a joint effort between the Italian C++ Community and SEA Vision, who is also generously hosting the event at their venue. The event is free…

  25. Registration is now open for CppCon 2025! The conference starts on September 13 and will be held in person in Aurora, CO. To whet your appetite for this yearâ��s conference, weâ��re posting some upcoming talks that you will be able to attend this year. Hereâ��s another CppCon future talk we hope you will enjoy â�� and register today for CppCon 2025! Clean code! Horrible performance? Friday, September 18 14:45 - 15:45 MDT by Sandor Dargo Summary of the talk: Clean code promises readability, maintainability, and clarity. But is it possible that the pursuit of clean code comes at a catastrophic cost to performance? Some sceptics argue that adherin…

Recently Browsing 0

  • No registered users viewing this page.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.