forked from hsutter/cppfront
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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.
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.
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!
-
/modern-cmake/cppfront: A modern CMake (3.23+) build for cppfront, complete with automatic cpp2-to-cpp1 translation. Compatible with
find_package
,add_subdirectory
, andFetchContent
. - /JohelEGP/jegp.cmake_modules/#jegpcpp2: A CMake module to build Cpp2 source files.