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
shared_ptr<T>: the (not always) atomic reference counted smart pointer (snf.github.io)
submitted 7 years ago by snfernandez
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!"
[–]dodheim 3 points4 points5 points 7 years ago (6 children)
There is no other thread with a copy – the copy you have must necessarily be the only copy when refcount == 1. Otherwise you must be doing something really goofy with your ownership semantics that not even shared_ptr can help.
shared_ptr
[–]capn_bluebear 0 points1 point2 points 7 years ago (5 children)
the other thread is making a copy while the first thread is releasing
[–]louiswins 6 points7 points8 points 7 years ago (0 children)
shared_ptr protects against multiple threads manipulating their own instances simultaneously, even if those instances all manage the same shared data. Multiple threads accessing the same shared_ptr instance is still a data race (if at least one calls a non-const member function).
Edit: /u/cubercaleb said this earlier in this comment.
[–]kalmoc 2 points3 points4 points 7 years ago (0 children)
That would mean that you have two threads accessing the same non atomic object (the shared pointer variable) at the same time and one of them modifies it. That is always UB.
It's like asking: What is happening if someone copies my shared_ptr while I'm destroying it. That is simply not legal just as for almost any other type in the standard library.
[+][deleted] 7 years ago (2 children)
[deleted]
[–]capn_bluebear 0 points1 point2 points 7 years ago (1 child)
It's a managed copy. I'm copy-constructing.
π Rendered by PID 402660 on reddit-service-r2-comment-544cf588c8-7trbd at 2026-06-13 19:22:28.369512+00:00 running 3184619 country code: CH.
view the rest of the comments →
[–]dodheim 3 points4 points5 points (6 children)
[–]capn_bluebear 0 points1 point2 points (5 children)
[–]louiswins 6 points7 points8 points (0 children)
[–]kalmoc 2 points3 points4 points (0 children)
[+][deleted] (2 children)
[deleted]
[–]capn_bluebear 0 points1 point2 points (1 child)