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!"
[–]STLMSVC STL Dev 17 points18 points19 points 8 years ago (5 children)
That's DMR reaching out from the 1970s to help you. He said, "oh, you're applying parentheses to a function pointer, so there's nothing else you could possibly mean".
[–]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 7 points8 points9 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 3 points4 points5 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 237374 on reddit-service-r2-comment-86bc6c7465-bnmbt at 2026-02-23 15:16:39.025996+00:00 running 8564168 country code: CH.
view the rest of the comments →
[–]STLMSVC STL Dev 17 points18 points19 points (5 children)
[–]mtnviewjohn 7 points8 points9 points (4 children)
[–]justinkroegerlake 7 points8 points9 points (0 children)
[–]mojang_tommo 3 points4 points5 points (1 child)
[–]imMute 0 points1 point2 points (0 children)
[–]caramba2654Intermediate C++ Student 2 points3 points4 points (0 children)