data-slots=image, heading, text1
Hero image

C++ Whitepapers

Our library of C++ whitepapers, providing insights, methodologies, and advanced techniques

Nothing here yet! Check back later

<!--

data-slots=image, heading, text, links
data-width=33%
C++ logo

Memory safety and C++ successors

Software exploits increasingly harm consumers and threaten national security. Memory safe programming languages provide substantial protection and some groups are calling for legislation incentivizing their adoption. Unfortunately, it isn't clear how companies with large existing C++ codebases can adapt. In an effort to help answer that question, this paper explores the adoption feasibility of several memory safe alternatives to C++. - David Sankel - May 22, 2023
View Whitepaper
data-slots=image, heading, text, links
data-width=33%
C++ logo

Safety in the context of C++

Safety, particularly memory safety, is a growing concern in the C++ community driven by the security implications of memory unsafe systems. Consumer Reports states, "Roughly 60 to 70 percent of browser and kernel vulnerabilities, and security bugs found in C/C++ code bases, are due to memory unsafety.". A recent NSA report states, "...the overarching software community across the private sector, academia, and the U.S. Government have begun initiatives to drive the software development culture towards utilizing memory safe languages." The White House National Cybersecurity Strategy plans to hold companies responsible for retained data and increase liability for insecure software. Memory safety is also called out. "In partnership with the private sector and the open-source software community, the Federal Government will also continue to invest in developing secure software, including memory-safe languages and software development techniques, frameworks, and testing tools." This document defines safety and related terms to provide a framework to further the discussion with actionable guidance regarding the correct use of C++.- Sean Parent - May 20, 2023
View Whitepaper
data-slots=image, heading, text, links
data-width=33%
C++ logo

Defining Object, Validity, State, and Value

This document introduces a vocabulary and conceptual framework for dealing with objects and validity in C++. We begin by exploring the limitations of existing models and relevant examples. We proceed by introducing the meaning of validity, object, state, and value. Finally, we define "meaningless" and demonstrate its harmony with existing practice and desires. We discuss the implications of this model for move semantics, correctness, and efficiency. - David Sankel - May 19, 2023
View Whitepaper

2023

Memory safety and C++ successors

Software exploits increasingly harm consumers and threaten national security. Memory safe programming languages provide substantial protection and some groups are calling for legislation incentivizing their adoption. Unfortunately, it isn't clear how companies with large existing C++ codebases can adapt. In an effort to help answer that question, this paper explores the adoption feasibility of several memory safe alternatives to C++.
David Sankel — May 22, 2023

Safety in the context of C++

Safety, particularly memory safety, is a growing concern in the C++ community driven by the security implications of memory unsafe systems. Consumer Reports states, "Roughly 60 to 70 percent of browser and kernel vulnerabilities, and security bugs found in C/C++ code bases, are due to memory unsafety.". A recent NSA report states, "...the overarching software community across the private sector, academia, and the U.S. Government have begun initiatives to drive the software development culture towards utilizing memory safe languages." The White House National Cybersecurity Strategy plans to hold companies responsible for retained data and increase liability for insecure software. Memory safety is also called out. "In partnership with the private sector and the open-source software community, the Federal Government will also continue to invest in developing secure software, including memory-safe languages and software development techniques, frameworks, and testing tools." This document defines safety and related terms to provide a framework to further the discussion with actionable guidance regarding the correct use of C++.
Sean Parent — May 20, 2023

Defining Object, Validity, State, and Value

This document introduces a vocabulary and conceptual framework for dealing with objects and validity in C++. We begin by exploring the limitations of existing models and relevant examples. We proceed by introducing the meaning of validity, object, state, and value. Finally, we define "meaningless" and demonstrate its harmony with existing practice and desires. We discuss the implications of this model for move semantics, correctness, and efficiency.
David Sankel — May 19, 2023

-->