C++
Never wrote C++, Rust/Zig/Go are much better for new code. Qb does seem interesting though for simplifying the build system for C++ at least.
Carbon is interesting.
Notes
- C++ is a fucking nightmare. There's 5 ways to do everything, ie because of historical reasons. Endless rules about shit like coercions, etc etc.
- The popularity of C++ was definitely helped by the 'being wrong on the internet' effect. Every beginner programmer immediately thought they could do a better stdlib/macrothing/buildsystem because everything was wrong but you had the illusion YOU could do it right.
Links
- C++ By Example
- Draft C++ Standard: Contents (Code)
- C++ resources
- Immer - Postmodern immutable and persistent data structures for C++. (Paper)
- C++ Build Process Explained
- IKOS - Static analyzer for C/C++ based on the theory of Abstract Interpretation. (HN)
- cget - C++ package retrieval.
- Is C++ fast? (2019)
- In-depth: Functional programming in C++ (2012) (HN) (HN 2)
- Buckaroo - Decentralized C++ package manager.
- Modern C++ Won't Save Us (2019) (HN) (HN 2)
- Awesome Modern C++
- Awesome Lock-Free
- Zero-overhead deterministic exceptions: Throwing values (2018)
- Google Robots.txt Parser and Matcher Library
- Safe C++ Blog
- Modern C++ Lecture (Basics)
- pybind11 - Seamless operability between C++11 and Python.
- From scratch" implementations of many C++17 standard library features
- dbg-macro - Macro for printf-style debugging fans.
- C++ Crash Course (Code) (Article)
- C++ Standard Draft Sources (Web)
- Modern C++ Tutorial: C++11/14/17/20 On the Fly (Code)
- Cling - Interactive C++ Interpreter. (Web)
- Mesh - Memory allocator that automatically reduces the memory footprint of C/C++ applications.
- Circle - C++ Automation Language. (Web) (HN)
- CppCon 2019: Chandler Carruth “There Are No Zero-cost Abstractions” (2019)
- Cppcheck - Static analysis of C/C++ code.
- Optimizing software in C++
- C++ Core Guidelines (Code)
- CppCon 2019 talks
- CppCon 2019: Bjarne Stroustrup “C++20: C++ at 40”
- Modern Memory Safety: C/C++ Vulnerability Discovery, Exploitation, Hardening (2016)
- CppCon 2019: JF Bastien “Deprecating volatile” (2019)
- Collaborative Collection of C++ Best Practices
- ChaiScript - Embedded Scripting Language Designed for C++.
- Kevlin Henney - Functional C++ (2017)
- Object-Oriented Data Structures in C++ course
- C++ Reference (Code)
- Accelerated C++: Practical Programming by Example book (2000)
- 2019 LLVM Developers’ Meeting: S. Haastregt & A. Stulova “An overview of Clang”
- C++ links: Coroutines
- Cheerp - C/C++ compiler for Web applications - compiles to WebAssembly and JavaScript.
- CppML - Meta Language for C++.
- Awesome C++
- CppCon 2019: Andrei Alexandrescu “Speed Is Found In The Minds of People"
- All Algorithms implemented in C++
- Introduction to C++ for Swift Developers (2019)
- rr - C/C++ debugging tool for Linux, replacing — well, enhancing — gdb. (Code) (HN)
- #include C++ - Global, inclusive, and diverse community for developers interested in C++.
- C++ papers (2019)
- How can you be so certain? (2019) (Lobsters)
- CppCon 2019: Saar Raz “C++20 Concepts: A Day in the Life”
- Chandler Carruth - Programming Language Design for Performance Critical Software (2019)
- C++ programming: From problem analysis to program design
- C++ Insights - See your source code with the eyes of a compiler. (Code) (About)
- ThreadPool - Simple C++11 Thread Pool implementation. (HN)
- What do you mean by "cache friendly"? - Björn Fahller (2019)
- C++ papers JTC1/SC22/WG21 (2020)
- C++ Lifetime Profile: How It Plans to Make C++ Code Safer (2020)
- Improving Compilation Time of C/C++ Projects (2020)
- C++ revision changes (2020)
- SWIG - Software development tool that connects programs written in C and C++ with a variety of high-level programming languages. (Web)
- Move, simply (2020) (HN)
- C++ Closure (2020)
- Where to Get Started Learing C++ and What Resources to Use (2019)
- Cost of a thread in C++ under Linux (HN)
- A New Decade, A New Tool (2020) (HN)
- Why so many people hate C++? (2020)
- The Case for C++ (2019) (Lobsters)
- Advanced Programming Techniques for Robust Efficient Computing (With C++) (Lectures)
- Advanced Data Structures in C++ (2020)
- Where can you find an advanced C++ software development course? (2020)
- Louis Brandy “Curiously Recurring C++ Bugs at Facebook” (2017)
- AddressSanitizer - Memory error detector for C/C++.
- CMakeStarter - Template for modern C++ libraries and projects.
- CPM.cmake - CMake script that adds dependency management capabilities to CMake.
- ProDBG - New debugger under development that will support a variety of targets and operating systems.
- Pitchfork - Set of conventions for native C and C++ projects. The most prominent being the project layout conventions.
- CMakeRC - Standalone CMake-Based C++ Resource Compiler.
- C++ Is Faster and Safer Than Rust: Benchmarked by Yandex (HN)
- Programming languages — a common C/C++ core specification (2020)
- C++ Coroutines: Understanding Symmetric Transfer (2020)
- Goals and priorities for C++ (2020) (HN)
- Analyzing The Simplest C++ Program (2020)
- How are libraries like Tensorflow developed in C++ buy can run in python? (2020)
- What science can tell us about C and C++'s security (2020)
- Effective Modern C++ Cheatsheet
- re2c - Lexer generator for C/C++.
- Modern C++ Template - Quick C++ template for modern CMake projects, aimed to be an easy to use starting point.
- Learning to Code in C++ with Haiku OS
- C++ considered Harmful (and why E is better) (2008)
- Clang-Tidy - Clang-based C++ “linter” tool.
- zapcc - Caching C++ compiler based on clang, designed to perform faster compilations.
- Professional Programming Tools for C and C++ (Code)
- C++ Lambda Story Book (2020)
- CPyKE - Easy integrated Python scripting embedded in C++.
- 5 Curious C++ Lambda Examples: Recursion, constexpr, Containers and More (2020)
- C++ On Sea - International C++ conference.
- dds - New build, test, and packaging tool for native C and C++ libraries and applications, with a focus on simplicity, speed, and integratability. (Web)
- Syntax changes from C++11 to C++20 (2020) (HN)
- Categories for the Working C++ Programmer (2020) (Reddit)
- Overriding C++ virtual functions at run time (2020) (HN)
- Cheri C/C++ Programming Guide: Capability Hardware Enhanced RISC Instructions (2020) (HN)
- Memory mapped storage with Modern C++ (2015)
- Handles are the better pointers (2018) (Lobsters) (HN)
- Templight - Template Instantiation Profiler and Debugger.
- 6 Things You Can Do to Refactor a C++ Project (2020)
- C++ Pattern Matching
- Using Vim for C++ Development (HN)
- Where do I find the current C or C++ standard documents?
- New safety rules in C++ Core Check (2020)
- HN: C++20 has been approved (2020) (Reddit)
- Named Parameters in C++20 (2020) (HN)
- HN: C++ was the fastest growing programming language in Sept according to TIOBE (2020) (Reddit)
- Software Transactional Memory in C++: pure functional approach
- Dependency Injection in C++ (2016)
- The C++ Bestiary (2017) - Compendium of Cryptic Characters.
- Data-Oriented Design Book (Review) (Lobsters) (Contents)
- Learning-based Memory Allocation for C++ Server Workloads (2020)
- C++ Should Support JIT Compilation (2020)
- C++ Best Practices (2020) - 45ish Simple Rules with Specific Action Items for Better C++.
- What is the standard Library? (2020)
- Performance Matters - Emery Berger (2020)
- C++: The Good Parts (HN)
- The Definitive C++ Book Guide and List
- Beginning C++ Programming - From Beginner to Beyond
- Back to Basics: Concurrency - Arthur O'Dwyer - CppCon 2020
- Back to Basics: The Abstract Machine - Bob Steagall - CppCon 2020
- I need extra C/C++ performance now. How? (2020)
- How to Keep the Binary Compatibility of C++ Based Objects (2020)
- Some Things C++ Does Right - Patrice Roy - CppCon 2020
- Ocean - Project manager, similar to Rust's Cargo, for C and C++ written with Rust.
- Overloading by Return Type in C++ (2020) (HN)
- Inheritance is for sharing an interface (and so is overloading) (2020)
- sigcpp - Special Interest Group on C++.
- Deep C (and C++) (2011)
- The joys of C++17 (2019)
- Getting back to C++ after Rust is a pain (2020)
- Does C++ still deserve a bad rap? (2020) (HN) (Lobsters)
- C++ Deserves Its Bad Reputation (2020) (Lobsters)
- Handle C++ exceptions in C code (2020)
- No, C++ still isn't cutting it (2020) (HN) (Reddit)
- 17 Smaller but Handy C++17 Features (2020)
constexpr
is a Platform (2020)- Warrior1: A Performance Sanitizer for C++ (2020)
- What's Wrong with C++ Templates? (Lobsters) (HN)
- Include What You Use - Tool for use with clang to analyze #includes in C and C++ source files. (Docs)
- TCMalloc - Fast, multi-threaded malloc implementation used by Google.
- Ask HN: Good C++ code bases to read? (2020)
- Ask HN: Should I learn C/C++ or Rust as my first systems programming language? (2020)
- CRUST - C/C++ to Rust Transpiler.
- Orbit (Open Runtime Binary Instrumentation Tool) - Standalone C/C++ profiler for Windows and Linux.
- Fluent C++ blog
- C++ Frequently Questioned Answers
- Jonathan Boccara “105 STL Algorithms in Less Than an Hour” (2018)
- Programming Data Parallel C++ (2020)
- WG21: C++ Standards Committee Papers
- clangd - C++ Language server. Provides C++ IDE features to editors. (Web)
- 30 Seconds Of Standard Template Library in C++
- Core C++ 2020
- xrepo - Cross-platform C/C++ package manager based on Xmake. (Lobsters) (Web) (Repo)
- Is the preprocessor still needed in C++? (2017) (HN)
- C++ is not cross platform anymore (2019)
- Is C++ type-safe? (There’s two right answers) (2020) (Lobsters)
- Unwinding a Bug - How C++ Exceptions Work (2020)
- Runtime Compiled C++ sample code - Way to reliably make major changes to your C++ code at runtime and see the results immediately.
- Doxygen - De facto standard tool for generating documentation from annotated C++ sources. (Web)
- C++20 Standard Published (2020) (Reddit)
- CPPINCLUDE - Tool for analyzing includes in C++.
- C/C++ Compiler Cheatsheet
- Data Parallel C++
- Interactive C++ for Data Science (2020) (HN)
- Accelerating Standard C++ with GPUs Using stdpar (Lobsters)
- Immediate mode GUI performance (2020) (HN)
- C++ for Swift developers (2021)
- C++ std::async with a concurrency limit (via semaphores) (2021)
- C++ Performance Trap #1: Constant-size std::vector (2021)
- atJIT - Just-in-time autotuning compiler for C++.
- How to Pass a Variadic Pack as a First Argument of a Function in C++ (2021) (Lobsters)
- Time Travel Debugging for C/C++ (2021)
- Move Semantics in C++ (2020)
- An Improved Thread with C++20 (HN)
- Standalone C++ - Run C++ from anywhere.
- My tutorial and take on C++20 coroutines (2021) (HN)
- C++ build systems: our transition from CMake to Meson (2021)
- A Case Against Blind Use of C++ Parallel Algorithms (2021)
- How To Stay Sane with Modern C++ (2020)
- NativeJIT - C++ expression -> x64 JIT.
- NASA C++ Coding Standards and Style Guide
- Parameter Passing in C and C++ (2021)
- Building a Dual Shared and Static Library with CMake (2021)
- Concepts shipped with the C++ standard library (2021)
- How C++ Resolves a Function Call (2021) (HN)
- Making Your Own Container Compatible With C++20 Ranges (2021)
- Cling -- Beyond Just Interpreting C++ (2021)
- Blazing fast expression evaluation for C++ in LLDB (2021)
- Lint Tools - checking C/C++ programs
- All C++20 core language features with examples (2021) (HN)
- fips - High-level build system for distributed, multi-platform C/C++ projects.
- Examining Problematic Memory in C/C++ Applications with BPF, perf, and Memcheck (2021)
- Understanding Atomics and Memory Ordering (2021)
- C++ Style Guide Lineup - Comparison of common C++ style guides.
- SIMD for C++ Developers (2019) (HN)
- C++ Constructors, Memory, and Lifetimes (2021)
- A map through the three major coroutine series (2021)
- Instant replay: Debugging C and C++ programs with rr (2021) (HN)
- C++, Swift, Rust, and stable ABIs (2021)
- What can C++ do that Rust can’t? (2021)
- Ask HN: Getting back to C++ and looking for ideas (2021)
- ClangQL - Query C++ codebases using SQLite. (HN)
- C++20: Building a Thread-Pool with Coroutines (2021) (HN)
- My experience binding a couple of scripting engines with C++ (2021) (HN)
- C++Now 2021
- C++Now 2019: Odin Holmes “Tacit DSL All the Things”
- Ambiguity in template parameters (2021)
- C++20 Range Adaptors and Range Factories (2021)
- Mesh: Compacting Memory Management for C/C++ Applications (2019)
- My favourite C++ footgun (2021) (HN)
- Palanteer - Set of lean and efficient tools to improve the general software quality, for C++ and Python programs.
- Correctly implementing a spinlock in Modern C++ (2020) (HN)
- Comprehensive catalog of C++ books
- JSCPP - Simple C++ interpreter written in JavaScript.
- Overflowing timeout (2021)
- Model Checking C++ Programs (2021)
- Thriving in a Crowded and Changing World: C++ 2006–2020 (HN)
- C++ Dev Ecosystem 2021 (HN) (Lobsters)
- C++ Interfaces and Templates (2020)
- Achieving generic bliss with reflection in modern C++ (2021)
- MicroProfiler - Cross-platform low-footprint realtime C/C++ Profiler.
- Modern C++ for C Programmers (2018)
- On C++ and Object Oriented Programming (2019)
- Modern C++ Cheat Sheet
- Efficient Programming with Components (Notes)
- Summary of the semantics of inline in C and C++ (2021) (HN)
- Путеводитель C++ программиста по неопределенному поведению
- C++20 Modules with GCC11 (2021) (HN)
- OCLint - Static code analysis tool for improving quality and reducing defects by inspecting C, C++ and Objective-C code. (Code)
- Writing a simple JSON library from scratch: a tour through modern C++ (2021) (HN)
- Safer Usage Of C++ (2021)
- Coercing deep const-ness (2021)
- A class without a copy constructor (2021)
- Easy Type-Safe Integer Types In C++ (2021) (Lobsters)
- cel-cpp - Fast, portable, non-Turing complete expression evaluation (C++).
- C++ Roadmap - Дорожная карта по изучению языка C++ для чайников.
- High-performance garbage collection for C++ (2020)
- weggli - Fast and robust semantic search tool for C and C++ codebases. Designed to help security researchers identify interesting functionality in large codebases.
- [History of C++] Templates: from C-style macros to concepts (2021)
- The genesis of casting (2021)
- Implementing Useful Algorithms in C++ (2020) (Code)
- Borrowing Trouble: The Difficulties Of A C++ Borrow-Checker (2021) (Lobsters)
- In C++, is empty() faster than comparing the size with zero? (2021) (HN)
- C++ Teaching Manifesto
- C++ Coroutines Do Not Spark Joy (2021) (HN)
- uftrace - Function graph tracer for C/C++/Rust. (Web)
- C++ Move Semantics Considered Harmful (Rust is better) (2021) (Reddit)
- celtera - Boutique c++ consulting. (GitHub)
- C++ Tip of The Week
- Embracing Modern C++ Safely Book (2021) (Tweet)
- {fmt} Formatting & Printing C++ Library Cheat Sheet (Tweet)
- Hacking C++ - Learn Contemporary C++ // code examples, concise explanations and infographics. (Twitter)
- Real-Time C++: Efficient Object-Oriented and Template Microcontroller Programming Book (2021) (Code)
- easy_profiler - Lightweight profiler library for c++.
- Virtual inheritance in C++ (2021)
- I want to show a thing (C++ to machine code) (2021)
- CppCon 2014: Mike Acton "Data-Oriented Design and C++"
- C++ Python-like Decorators - How to write decorator functions in modern C++.
- An 'Attempt' to avoid C++ exceptions (2021)
- Modern C++ command line tool template
- Software Tools in C++ (HN)
- pinned_vec - invalidating iterator invalidation (Lobsters)
- Introduction to fibers in c++ (2019)
- The Evolutions of Lambdas in C++14, C++17 and C++20 (2021) (HN)
- BRiCk - Formalization of C++ for verification purposes.
- Thread Safety in C++ and Rust (2021) (HN)
- Using C Libraries in your Modern C++ Embedded Project - Michael Caisse (2021)
- Flawfinder - Simple program that scans C/C++ source code and reports potential security flaws.
- The Usual Arithmetic Confusions (2021)
- The Evolution of Functions in Modern C++ (2022)
- C++ at the end of 2021
- C++ Stories - Modern C++, news reports, tools, and more.
- ccls - C/C++/ObjC language server supporting cross references, hierarchies, completion and semantic highlighting.
- 20 Smaller yet Handy C++20 Features (2022) (Lobsters)
- “Modern” C++ Lamentations (2018) (HN)
- We used C++20 to eliminate an entire class of runtime bugs (2022) (HN)
- The Danger of Atomic Operations
- Const all the things? (2022) (HN)
- A Tour of C++ - Reading Notes (2022)
- Branchless Programming in C++ - Fedor Pikus - CppCon 2021
- Working with Strings in Embedded C++ (2022)
- setup-cpp - Install all the tools required for building and testing C++/C projects.
- What would you remove from C++ to make it a more concise language? (2022)
- Prefix Sum with SIMD (HN)
- Yet another explanation of C/C++ pointers (2022) (Lobsters)
- Command Line Flags in C++ (2022)
- cpp_starter_project - Template CMake project to get you started with C++ and tooling.
- Cache Associativity
- cgen - C/C++ source generation from an AST.
- C++ Cheat Sheets (HN)
- Current hardware trends make C++ exceptions harder to justify (2022) (HN) (Lobsters)
- Is C++ Doomed? (2022) (HN)
- C++ a standard build system/package manager? (2022)
- Dynamic and Static Polymorphism (2022)
- C++ header files and inter-class connections (2022) (Lobsters)
- Beginner's Guide to Linkers
- cpplint - Static code checker for C++.
- C++ resources (2022)
- Tolc - Makes C++ callable from other languages. (Code)
- List of recommended secure C++ coding practices (Reddit)
- Debug Break - Allows you to put breakpoints in your C/C++ code with a call to debug_break().
- CppParser - Library to parse C/C++ source as AST.
- Who owns the memory? (2022)
- C++ basics: Pointers vs iterators (2022)
- C and C++ coding style for best performance
- Avoiding game crashes related to linked lists (2012)
- Vale's Higher RAII, the pattern that saved me a vital 5 hours in the 7DRL Challenge (2022) (Lobsters)
- Dockerized build environments for C/C++ projects (2022)
- Automatic Serialization in C++ for Game Engines (2022) (Reddit)
- Cling - Interactive C++ interpreter.
- Lifetime annotations for C++ (2022) (HN)
- Asynchronous I/O and Coroutines for Smooth Data Streaming (2022)
- Programming in C/C++ Efficiently course (2021)
- fccf - Fast C/C++ Code Finder.
- Qb - Zero-configuration build system to quickly build C/C++ projects. (HN)
- Ask HN: Learn C++11 or Rust in 2022?
- borrow-cpp - Rust-style borrow checker for C++, with (partial) static check.
- Brief Descriptions of a Python to C++ Translator (2022)
- C++ | Capture *this in lambda expression: Timeline of change (2020)
- ClangJIT: Enhancing C++ with Just-in-Time Compilation (2019)
- Concepts Error Messages for Humans (2022) (Tweet)
- Safety and Performance - Threadsafe Datastructures in C++ (2022)
- A Garbage-Collected Heap in C++, Shaped Like Typed Python (2022)
- Retrofitting Temporal Memory Safety on C++ (2022) (HN)
- Modern C++ Programming
- Tiny C++ Interpreter
- Comprehensive list of differences between C and C++
- Retrofitting Temporal Memory Safety on C++ (2022) (HN)
- Which concerns of the game dev industry does C++ committee NOT address? (2022)
- The C/C++ preprocessor iceberg with explanations
- Carbon - Experimental successor to C++. (HN) (Tweet) (Tweet) (HN) (Talk)
- build2 - C/C++ Build Toolchain. (Code)
- Pre-defined C/C++ Compiler Macros
- Carbon's most exciting feature is its calling convention (2022) (Lobsters) (HN)
- C xor C++: Situations where the same code has different meaning in C and C++ (2022)
- Ask HN: What are some good resources to learn safety-critical C/C++ coding from? (2022)
- How Carbon transpiles to C++ (2022) (Lobsters)
- The copy and swap idiom in C++ (2022)
- Ask HN: Who is using C++ as the main language for new project? (2022)
- Exceptions the Other Way Round - Sean Parent (2022)