Skip to content
Herb Sutter edited this page Oct 5, 2022 · 33 revisions

Welcome to the cppfront wiki!

This wiki collects some Cpp2 language design notes, and links to related projects.

Design notes

These Cpp2/cppfront design notes cover things like rationale for a given design choice, and alternatives considered. They are not intended to be exhaustive, but to give a basic answer to why something is the way it is, always subject to "this is an experiment! we'll learn."

  • Design note: UFCS Why does UFCS use fallback semantics (prefer a member function)? Doesn't that mean that adding a member function later could silently change behavior of existing call sites?
  • Design note: const objects by default Should objects be const? Mostly yes.
  • Design note: unsafe code Yes, I intend that we should be able to write very-low-level facilities in Cpp2. No, that doesn't mean a monolithic "unsafe" block... I think we can do better.
  • Design note: ABI Cpp2 is ABI-neutral, but its immunity from backward compatibility constraints presents an opportunity for link-level improvements, not just source-level improvements.

Related projects

Here are some projects related to cppfront. Note that these are created and maintained by other people, and I generally don't know much about them. If you think I'm linking to one that shouldn't be linked to, please open an issue and explain why; thanks!

Clone this wiki locally