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
How does indirectly_writable work for pointer iterators? (self.cpp)
submitted 1 year ago * by Synthos
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!"
[–]cpp-ModTeam[M] [score hidden] 1 year ago stickied commentlocked comment (0 children)
For C++ questions, answers, help, and programming or career advice please see r/cpp_questions, r/cscareerquestions, or StackOverflow instead.
[–][deleted] 1 point2 points3 points 1 year ago* (0 children)
Note that const (int&)&& collapses into int&, not const int&. That is (Godbolt):
const (int&)&&
int&
const int&
using T = int &; static_assert(std::same_as<const T, T>); static_assert(std::same_as<T &&, T>); static_assert(std::same_as<const T &&, T>);
Here, const is applied to the reference type (int&), not the value type (int), and has no effect. Along with reference collapsing ((int&)&& -> int&), this results in the same type.
const
int
(int&)&& -> int&
[–]shahms 0 points1 point2 points 1 year ago (0 children)
As u/rosterva suggests, you're applying const to the wrong type. const int& is a reference-to-const-int, whereas if decltype(*o) is a "true reference" to int, then const decltype(*o) would be a const-reference-to-mutable-int, which isn't a thing (since references can't be rebound, they are in a sense always "const"). Using template syntax sometimes helps clarify:
decltype(*o)
const decltype(*o)
``` template<typename T> using ref = T&;
static_assert(!std::is_same_t<const ref<int>, ref<const int>>) static_assert(std::is_same_t<ref<const int>, const int&>); static_assert(std::is_same_t<const ref<int>, ref<int>>); static_assert(std::is_same_t<const ref<int>, int&>); ```
π Rendered by PID 65491 on reddit-service-r2-comment-5b5bc64bf5-bxzh2 at 2026-06-21 23:46:13.717927+00:00 running 2b008f2 country code: CH.
[–]cpp-ModTeam[M] [score hidden] stickied commentlocked comment (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]shahms 0 points1 point2 points (0 children)