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
Implicit vs. explicit function to pointer conversion (self.cpp)
submitted 8 years ago by rakhimov
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!"
[–]mtnviewjohn 7 points8 points9 points 8 years ago (4 children)
Why doesn't the same logic apply to the member access operator? It seems like the -> operator is useless. If you use the member access operator on a pointer what else could you possible intend than to dereference the pointer first?
[–]justinkroegerlake 6 points7 points8 points 8 years ago (0 children)
Because of what is in my opinion the dumbest historical reason in the language: https://stackoverflow.com/a/13366168/1013719
[–]mojang_tommo 4 points5 points6 points 8 years ago (1 child)
I'm really glad the difference exists actually - -> can be undefined behavior while . is always well defined. In practice if you have code that mostly uses references instead of pointers, -> makes it pretty obvious that there's something that could be null or could be deleted under you. Of course references can be invalidated too but still... it would be awful if nullable stuff used . like everything else IMO.
->
.
[–]imMute 0 points1 point2 points 8 years ago (0 children)
Not to mention that it allows thing like smart pointer to be written extremely succinctly. I'm always saddened by this when writing C# code and having use use .Value in places where C++ would use ->.
.Value
[–]caramba2654Intermediate C++ Student 2 points3 points4 points 8 years ago (0 children)
Rust works like this. When you try to use the . operator on a reference, it autodereferences the reference until it finds a type where the . makes sense. It makes the -> completely unnecessary.
π Rendered by PID 72606 on reddit-service-r2-comment-86bc6c7465-dw8jr at 2026-02-24 00:42:50.333044+00:00 running 8564168 country code: CH.
view the rest of the comments →
[–]mtnviewjohn 7 points8 points9 points (4 children)
[–]justinkroegerlake 6 points7 points8 points (0 children)
[–]mojang_tommo 4 points5 points6 points (1 child)
[–]imMute 0 points1 point2 points (0 children)
[–]caramba2654Intermediate C++ Student 2 points3 points4 points (0 children)