Aussie AI

Safe C++ Research

  • Last Updated 1 April, 2025
  • by David Spuler, Ph.D.

Safe C++

Rust vs C++

Memory Safety

Undefined Behavior

Undefined behavior is any types of operations where the results are not fully described by the C++ standard. Examples include uninitialized variables, null pointer dereferences, arithmetic overflows, and all sorts of other obscure malfeasance. The aim of Safe C++ is to either prevent or normalize all undefined behavior.

Papers and articles on undefined behavior in C++:

Memory Tagging

Memory tagging, also called pointer tagging, is a method of tagging addresses and pointer variables with extra information in relation to their status and safety.

Runtime Memory Checker Tools

Runtime memory checkers include tools like Valgrind or AddressSanitizer. There is a lot of research theory:

Floating-Point Runtime Error Checkers

Research papers on tools that detect floating-point errors and exceptions at runtime:

Secure C++

Use-After-Free Errors

Research papers on use-after-free vulnerabilities:

Bounds Checking

Research papers on bounds checking:

Refactoring

Research papers on refactoring:

Safe C++ Blog Articles

See also these articles:

Safe C++ Book



Safe C++: Fixing Memory Safety Issues The new Safe C++ coding book by David Spuler:
  • Memory Safety
  • Rust versus C++
  • The Safe C++ Standard
  • Pragmatic Memory Safety

Get your copy from Amazon: Safe C++: Fixing Memory Safety Issues

More AI Research

Read more about: