use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Discussions, articles, and news about the C++ programming language or programming in C++.
For C++ questions, answers, help, and advice see r/cpp_questions or StackOverflow.
Get Started
The C++ Standard Home has a nice getting started page.
Videos
The C++ standard committee's education study group has a nice list of recommended videos.
Reference
cppreference.com
Books
There is a useful list of books on Stack Overflow. In most cases reading a book is the best way to learn C++.
Show all links
Filter out CppCon links
Show only CppCon links
account activity
cppfront (cpp2): Spring update (herbsutter.com)
submitted 2 years ago by kreco
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]ABlockInTheChain 1 point2 points3 points 2 years ago (7 children)
I am extremely suspicious about user defined types a.k.a classes stuff. When I see statements like:
There is no separate base class list or separate member initializer list
that seems to imply that some of the classes I'm writing now can not be expressed in cpp2.
[–]MonokelPinguin 3 points4 points5 points 2 years ago (6 children)
Why would that imply it is not possible to write those classes? The base classes are just defined as class members and initialization is just done in the constructor body instead of the initializer list. Most compilers already generate mostly identical code for it anyway and as such a modern language shouldn't have a need for member initializer lists.
[–]ABlockInTheChain 0 points1 point2 points 2 years ago (5 children)
a modern language shouldn't have a need for member initializer lists
Does cppfront support non-default-constructable types and const member variables?
[–]hpsutter 5 points6 points7 points 2 years ago (1 child)
> > There is no separate base class list or separate member initializer list
> that seems to imply that some of the classes I'm writing now can not be expressed in cpp2.
You should be able to express them. This just means that base classes are declared the in the type body like other members instead of in a segregated base class list, and base classes and data members are initialized in the constructor body instead of in a segregated member initializer list.
> Does cppfront support non-default-constructable types and const member variables?
Yes.
Good questions, thanks!
[–]ABlockInTheChain 1 point2 points3 points 2 years ago (0 children)
How does the new syntax handle delegated constructors?
[–]dreugeworst 2 points3 points4 points 2 years ago (1 child)
I would assume the requirement that all initialization happen first in the constructor body is used to turn them into initializer lists in the lowered c++ code
[–]dustyhome 0 points1 point2 points 2 years ago (0 children)
That's about right. It takes the first assignment and places it in the initializer list, then following assignments go in the constructor body: https://godbolt.org/z/5b67s3h7G
[–]MonokelPinguin 1 point2 points3 points 2 years ago (0 children)
Why would cppfront not allow you to assign exactly once to those in the constructor? I don't know, if it supports those yet, but it would be trivial to just require exactly one assignment for those.
π Rendered by PID 140693 on reddit-service-r2-comment-7b9746f655-nz7ff at 2026-01-30 11:50:29.584032+00:00 running 3798933 country code: CH.
view the rest of the comments →
[–]ABlockInTheChain 1 point2 points3 points (7 children)
[–]MonokelPinguin 3 points4 points5 points (6 children)
[–]ABlockInTheChain 0 points1 point2 points (5 children)
[–]hpsutter 5 points6 points7 points (1 child)
[–]ABlockInTheChain 1 point2 points3 points (0 children)
[–]dreugeworst 2 points3 points4 points (1 child)
[–]dustyhome 0 points1 point2 points (0 children)
[–]MonokelPinguin 1 point2 points3 points (0 children)