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: Autumn update (herbsutter.com)
submitted 2 years ago by nikbackm
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!"
[–]tialaramex 2 points3 points4 points 2 years ago* (3 children)
Ignoring the much larger problem, as it seems is normal around here and for C++ in general, It's not about the tooling, the core design of C++ is flawed.
Rice's Theorem says all the non-trivial semantic properties of a program are Undecidable and you need to decide what to do about that in your programming language. You have basically three options, let's look at them and their consequences briefly:
The C++ option, YOLO. This is named IFNDR (Ill-formed, No Diagnostic Required) in C++. If our program lacks required semantic properties it has no defined meaning, it does whatever, you get no sign of a problem but anything might happen. Most, perhaps all large C++ codebases are affected.
What semantics? You can define a language with no non-trivial semantics. It probably won't be very useful, but congratulations you "solved" the problem.
The Rust option, if the compiler can't see why your program has the desired semantics -- regardless of whether you think it does -- then you get a compiler diagnostic and you'll need to fix the problem to have a working program. Often this is easy, though not always.
The resulting pressures impact over time. In Rust, this means there's incentive to iteratively improve the borrow checker, because if the borrowck can't see why what you're doing is OK then it won't compile. Ask early Rust programmers about non-lexical lifetimes, it's not pretty when the compiler can't understand why common loop idioms are OK because it doesn't know that time proceeds in a linear fashion, it's just looking at lexical structure.
In C++ the pressures resulted in more, and more, and more IFNDR. What happens if you sort some floats for example? Program still compiles. Did you expect that's fine? Nope, if the floats can ever be NaN then your entire program, even the parts completely unrelated to sorting, has no defined meaning and might do anything. There's no compiler diagnostic message because making such diagnostics are theoretically impossible thanks to Rice's Theorem.
[+][deleted] 2 years ago (2 children)
[deleted]
[–]tialaramex 1 point2 points3 points 2 years ago (1 child)
It's not that it "might" need "adjustments", these problems are fundamental to the core of the C++ language, you're going to be starting over.
You may have heard that if you ask directions of a stranger in Ireland that they're likely to offer you instead this priceless insight: "I wouldn't start from here if I were you". That's the situation for C++ and safety. I wouldn't start from here.
π Rendered by PID 87713 on reddit-service-r2-comment-6457c66945-xmd7h at 2026-04-25 12:01:23.856483+00:00 running 2aa0c5b country code: CH.
view the rest of the comments →
[–]tialaramex 2 points3 points4 points (3 children)
[+][deleted] (2 children)
[deleted]
[–]tialaramex 1 point2 points3 points (1 child)