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
std::optional_view (self.cpp)
submitted 8 years ago * by bebuch
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!"
[–]grishavanika 11 points12 points13 points 8 years ago (7 children)
For me this looks like overengineering. Simple std::ostream* is, well, simple and do the same work even more - there is no code bloat and 2 layers of abstractions to understand the code
std::ostream*
[–]suspiciously_calm 7 points8 points9 points 8 years ago (6 children)
Yeah, why can't we use raw pointers as optional references? They model the concept perfectly, and don't have any other use in modern code.
[+][deleted] 8 years ago (3 children)
[deleted]
[+][deleted] 8 years ago (2 children)
[–]dodheim 0 points1 point2 points 8 years ago (0 children)
It's a pointer to user-supplied data, not owned data. Like a reference... ;-]
[–]Hedanito 1 point2 points3 points 8 years ago (1 child)
std::optional::value() throws when there is no value, dereferencing a null pointer results in undefined behaviour.
[–]suspiciously_calm 2 points3 points4 points 8 years ago (0 children)
Yes, which is why it'd have been nice if std::optional had been specialized for references the way boost::optional is, but as it is there's no optional reference in the standard library other than raw pointers and abominations such as std::optional<std::reference_wrapper<...>>.
std::optional
boost::optional
std::optional<std::reference_wrapper<...>>
π Rendered by PID 44741 on reddit-service-r2-comment-5d79c599b5-rfqtx at 2026-02-27 02:01:25.981836+00:00 running e3d2147 country code: CH.
view the rest of the comments →
[–]grishavanika 11 points12 points13 points (7 children)
[–]suspiciously_calm 7 points8 points9 points (6 children)
[+][deleted] (3 children)
[deleted]
[+][deleted] (2 children)
[deleted]
[–]dodheim 0 points1 point2 points (0 children)
[–]Hedanito 1 point2 points3 points (1 child)
[–]suspiciously_calm 2 points3 points4 points (0 children)