C++ creator calls for help to defend programming language from 'serious attacks'
(theregister.com)
Bjarne Stroustrup, creator of C++, has issued a call for the C++ community to defend the programming language, which has been shunned by cybersecurity agencies and technical experts in recent years for its memory safety shortcomings.
Bjarne Stroustrup, creator of C++, has issued a call for the C++ community to defend the programming language, which has been shunned by cybersecurity agencies and technical experts in recent years for its memory safety shortcomings.
C++ creator calls for help to defend programming language from 'serious attacks'
(theregister.com)
Bjarne Stroustrup, creator of C++, has issued a call for the C++ community to defend the programming language, which has been shunned by cybersecurity agencies and technical experts in recent years for its memory safety shortcomings.
Bjarne Stroustrup, creator of C++, has issued a call for the C++ community to defend the programming language, which has been shunned by cybersecurity agencies and technical experts in recent years for its memory safety shortcomings.
GCC 15, now with C++ modules support
(gcc.gnu.org)
This page is a "brief" summary of some of the huge number of improvements in GCC 15.
This page is a "brief" summary of some of the huge number of improvements in GCC 15.
MSVC Address Sanitizer updates in Visual Studio 2022 version 17.13
(microsoft.com)
We have been investing in the quality of MSVC Address Sanitizer (ASan) in several key areas over the past year, including working with LLVM upstream to stay coordinated with their changes, adding coverage for internal tools and libraries, and hardening APIs and runtime modes.
We have been investing in the quality of MSVC Address Sanitizer (ASan) in several key areas over the past year, including working with LLVM upstream to stay coordinated with their changes, adding coverage for internal tools and libraries, and hardening APIs and runtime modes.
Show HN: Txeo – A Modern C++ Wrapper for TensorFlow
(github.com/rdabra)
Txeo is a lightweight and intuitive C++ wrapper for TensorFlow, designed to simplify TensorFlow C++ development while preserving high performance and flexibility.
Txeo is a lightweight and intuitive C++ wrapper for TensorFlow, designed to simplify TensorFlow C++ development while preserving high performance and flexibility.
If C++ cmpler became smarter would't be opinionated as rust borrowchecker?
(ycombinator.com)
I'm not well versed with either language as I was reading the article published https://cacm.acm.org/blogcacm/21st-century-c/<p>I suddenly thought of the forward looking trajectory of the idea of making c++ compiler smart(er) as to ease the burden of memory copying (section 3) with zero overhead. If one traces this arc it means that one day c++ compilers would be equivalent to the borrow checker?
I'm not well versed with either language as I was reading the article published https://cacm.acm.org/blogcacm/21st-century-c/<p>I suddenly thought of the forward looking trajectory of the idea of making c++ compiler smart(er) as to ease the burden of memory copying (section 3) with zero overhead. If one traces this arc it means that one day c++ compilers would be equivalent to the borrow checker?
Twin Leaks: C++ Walk with Me
(deprogrammaticaipsum.com)
The work of Bjarne Stroustrup, one of the most important programming language designers of all time, has happened in parallel with that of one of the greatest filmmakers of all time, David Lynch, who passed away during the preparation of this edition.
The work of Bjarne Stroustrup, one of the most important programming language designers of all time, has happened in parallel with that of one of the greatest filmmakers of all time, David Lynch, who passed away during the preparation of this edition.
A Clang regression related to switch statements and inlining
(nicula.xyz)
After my previous post, Eliminating redundant bound checks (read it for context if you haven’t already), I wanted to do a benchmark using the ‘optimized’ version of the increment() function, which didn’t contain any bound checks when compiled with Clang, even though we used .at() for indexing into the array.
After my previous post, Eliminating redundant bound checks (read it for context if you haven’t already), I wanted to do a benchmark using the ‘optimized’ version of the increment() function, which didn’t contain any bound checks when compiled with Clang, even though we used .at() for indexing into the array.
Swiss Tables
(abseil.io)
Abseil provides its own family of hash tables (colloquially known as “Swiss tables”) in place of std::unordered_set and std::unordered_map. These classes are:
Abseil provides its own family of hash tables (colloquially known as “Swiss tables”) in place of std::unordered_set and std::unordered_map. These classes are:
0+0 > 0: C++ thread-local storage performance
(yosefk.com)
We'll discuss how to make sure that your access to TLS (thread-local storage) is fast. If you’re interested strictly in TLS performance guidelines and don't care about the details, skip right to the end — but be aware that you’ll be missing out on assembly listings of profound emotional depth, which can shake even a cynical, battle-hardened programmer. If you don’t want to miss out on that — and who would?!
We'll discuss how to make sure that your access to TLS (thread-local storage) is fast. If you’re interested strictly in TLS performance guidelines and don't care about the details, skip right to the end — but be aware that you’ll be missing out on assembly listings of profound emotional depth, which can shake even a cynical, battle-hardened programmer. If you don’t want to miss out on that — and who would?!
Do You Use a Debugger?
(sandordargo.com)
You might laugh at this question because your answer is of course, who wouldn’t! Especially in the world of C++. Equally, you might laugh at this question, because your answer is obviously no! You write clean code that reads like well-written prose and the behaviour of your code is clearly documented in automated tests.
You might laugh at this question because your answer is of course, who wouldn’t! Especially in the world of C++. Equally, you might laugh at this question, because your answer is obviously no! You write clean code that reads like well-written prose and the behaviour of your code is clearly documented in automated tests.
Nocc – A Distributed C++ Compiler
(github.com/VKCOM)
nocc propagates a compiler invocation to a remote machine: nocc g++ 1.cpp calls g++ remotely, not locally.
nocc propagates a compiler invocation to a remote machine: nocc g++ 1.cpp calls g++ remotely, not locally.
Fun with C++26 reflection: Keyword Arguments
(pydong.org)
In this blog post, we’ll explore implementing order-independent keyword arguments for C++ through use of C++26’s proposed reflection features. I stumbled upon this technique while experimenting with reflection a few days ago and thought it might be worthwhile to share, as it nicely showcases just how powerful the proposed reflection features are.
In this blog post, we’ll explore implementing order-independent keyword arguments for C++ through use of C++26’s proposed reflection features. I stumbled upon this technique while experimenting with reflection a few days ago and thought it might be worthwhile to share, as it nicely showcases just how powerful the proposed reflection features are.
Carbon is not a programming language (sort of)
(herecomesthemoon.net)
Carbon is a concentrated experimental effort to develop tooling that will facilitate automated large-scale long-term migrations of existing C++ code to a modern, well-annotated programming language with a modern, transparent process of evolution and governance model.
Carbon is a concentrated experimental effort to develop tooling that will facilitate automated large-scale long-term migrations of existing C++ code to a modern, well-annotated programming language with a modern, transparent process of evolution and governance model.
Funtrace: C++ function call tracer for x86/Linux
(github.com/yosefk)
A function call tracer is a kind of profiler showing a timeline of function call and return events. Here's an example trace captured by funtrace from Krita:
A function call tracer is a kind of profiler showing a timeline of function call and return events. Here's an example trace captured by funtrace from Krita:
21st Century C++
(cacm.acm.org)
It is now 45+ years since C++ was first conceived. As planned, it evolved to meet challenges, but many developers use C++ as if it was still the previous millennium. This is suboptimal from the perspective of ease of expressing ideas, performance, reliability, and maintainability. Here, I present the key concepts on which performant, type safe, and flexible C++ software can be built: resource management, life-time management, error-handling, modularity, and generic programming.
It is now 45+ years since C++ was first conceived. As planned, it evolved to meet challenges, but many developers use C++ as if it was still the previous millennium. This is suboptimal from the perspective of ease of expressing ideas, performance, reliability, and maintainability. Here, I present the key concepts on which performant, type safe, and flexible C++ software can be built: resource management, life-time management, error-handling, modularity, and generic programming.
21st Century C++
(cacm.acm.org)
It is now 45+ years since C++ was first conceived. As planned, it evolved to meet challenges, but many developers use C++ as if it was still the previous millennium. This is suboptimal from the perspective of ease of expressing ideas, performance, reliability, and maintainability. Here, I present the key concepts on which performant, type safe, and flexible C++ software can be built: resource management, life-time management, error-handling, modularity, and generic programming.
It is now 45+ years since C++ was first conceived. As planned, it evolved to meet challenges, but many developers use C++ as if it was still the previous millennium. This is suboptimal from the perspective of ease of expressing ideas, performance, reliability, and maintainability. Here, I present the key concepts on which performant, type safe, and flexible C++ software can be built: resource management, life-time management, error-handling, modularity, and generic programming.
Welcome Back to C++(2022)
(microsoft.com)
Since its creation, C++ has become one of the most widely used programming languages in the world.
Since its creation, C++ has become one of the most widely used programming languages in the world.
Deflate Decompression in C++23
(garymm.org)
In this post I describe some things I learned while working on Starflate, an implementation of Deflate decompression in C++23 that I wrote with my friend Oliver Lee.
In this post I describe some things I learned while working on Starflate, an implementation of Deflate decompression in C++23 that I wrote with my friend Oliver Lee.
Sparrow, a modern C++ implementation of the Apache Arrow columnar format
(medium.com)
We are thrilled to introduce Sparrow, a new library designed to simplify the integration of Apache Arrow’s columnar format into C++ applications.
We are thrilled to introduce Sparrow, a new library designed to simplify the integration of Apache Arrow’s columnar format into C++ applications.
When Greedy Algorithms Can Be Faster [C++]
(16bpp.net)
In the realm of computer science, we're always told to pursue what is the most efficient solution. This can be either what is the fastest way to solve a problem; or what may be the cheapest.
In the realm of computer science, we're always told to pursue what is the most efficient solution. This can be either what is the fastest way to solve a problem; or what may be the cheapest.
C++26: Pack Indexing
(sandordargo.com)
C++26 brings us pack indexing as a core language feature thanks to the proposal of Corentin Jabot and Pablo Halpern, P2662R3.
C++26 brings us pack indexing as a core language feature thanks to the proposal of Corentin Jabot and Pablo Halpern, P2662R3.
Debugging C++ is a UI nightmare
(core-explorer.github.io)
If you are a maintainer or developer of a debugger, don’t be offended, I’m not talking about you or your product.
If you are a maintainer or developer of a debugger, don’t be offended, I’m not talking about you or your product.
The surprising struggle to get a Unix Epoch time from a UTC string in C or C++
(berthub.eu)
So how hard could it be. As input we have something like Fri, 17 Jan 2025 06:07:07 in UTC, and we’d like to turn this into 1737094027, the notional (but not actual) number of seconds that have passed since 1970-01-01 00:00:00 UTC.
So how hard could it be. As input we have something like Fri, 17 Jan 2025 06:07:07 in UTC, and we’d like to turn this into 1737094027, the notional (but not actual) number of seconds that have passed since 1970-01-01 00:00:00 UTC.
Ada for the C++ or Java Developer – Concurrency
(adacore.com)
Java and Ada both provide support for concurrency in the language. The C++ language has added a concurrency facility in its most recent revision, C++11, but we are assuming that most C++ programmers are not (yet) familiar with these new features. We thus provide the following mock API for C++ which is similar to the Java Thread class:
Java and Ada both provide support for concurrency in the language. The C++ language has added a concurrency facility in its most recent revision, C++11, but we are assuming that most C++ programmers are not (yet) familiar with these new features. We thus provide the following mock API for C++ which is similar to the Java Thread class:
LibEventCpp – a lightweight single-header library for Event-driven Programming
(github.com/nguyenchiemminhvu)
LibEventCpp is a lightweight and portable C++14 library designed for handling events efficiently.
LibEventCpp is a lightweight and portable C++14 library designed for handling events efficiently.