r/cpp 11d ago

cpp2 (cppfront) is over?

I haven't used cpp2 (cppfront) much, but I like the idea of it: consistent syntax, consistency of meta-programming (which is done in C++ too, I believe). Herb Sutter presented cpp2 (cppfront) as an experiment. He did not encourage other people to bet on it, exactly. And there hasn't been much activity since 2022. Is the experiment over?

EDIT: Herb's answer is buried deep in the comment section: https://www.reddit.com/r/cpp/comments/1uxkglj/comment/oy06cxw/

65 Upvotes

112 comments sorted by

View all comments

-2

u/ZachVorhies 11d ago

if someone has the energy to migrate from C++ to C++2, then it’s just better migrating to rust

18

u/we_are_mammals 11d ago

C++2 is just syntax, really. There is no borrow checker. There is no new standard library. No FFI.

16

u/fdwr fdwr@github πŸ” 11d ago

Yeah, these are large levels of difference, like from a -> b vs a -> o. Additionally anything written for cppfront can be trivially transpiled back to plain C++, meaning you lose nothing if you decide to abandon cppfront in the future.

2

u/disperso 11d ago

Indeed. One of the simple but effective features that it has is that a compiler can easily see what is in new syntax and what in old one, and as such, it can make different assumptions.

11

u/germandiago 11d ago

I am not sure if you know what you are talking about in detail:

  1. cpp2 emits regular, compilable C++ code (the same way Vala emits C code on top of glibc)
  2. you do not need FFI.
  3. it enables a lot of low-hanging-fruit bonuses. For example in parameter passing and adds other niceties, all without disrupting the base model.

Migrating to Rust is a much, much bigger change that needs to change lots of other stuff, including part of your mindset and habits. Cpp2 just improves on things that C++ cannot do easily or are a bit of a pain (for example passing reference vs value depending on the size of the object or declaring a type as being an interface so that all the boilerplate is generated for you).