dexonsmith added inline comments.

================
Comment at: llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:75-76
   RefCountedBase() = default;
+  // Copy and move constructors/assignments are no-ops as the RefCount isn't
+  // dictated by the class directly.
   RefCountedBase(const RefCountedBase &) {}
----------------
njames93 wrote:
> njames93 wrote:
> > dexonsmith wrote:
> > > dblaikie wrote:
> > > > I can't quite understand this comment - perhaps you could try 
> > > > rephrasing it?
> > > I'm not quite following why you needed to add these special members; it 
> > > seems like just the destructor would be enough for the assertion; but if 
> > > you do need them, can/should they be `= default`?
> > They can't be defaulted as we don't want to copy the RefCount.
> I understand it in my head, just can't think of the best way to write it down.
Maybe something like this would work:
```
/// Do not copy or move RefCount when constructing or assigning from
/// a derived type. These operations don't imply anything about the
/// number of IntrusiveRefCntPtr instances.
```
WDYT?


================
Comment at: llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:75-80
+  // Copy and move constructors/assignments are no-ops as the RefCount isn't
+  // dictated by the class directly.
   RefCountedBase(const RefCountedBase &) {}
+  RefCountedBase(RefCountedBase &&) {}
+  RefCountedBase &operator=(const RefCountedBase &) { return *this; }
+  RefCountedBase &operator=(RefCountedBase &&) { return *this; }
----------------
dexonsmith wrote:
> njames93 wrote:
> > njames93 wrote:
> > > dexonsmith wrote:
> > > > dblaikie wrote:
> > > > > I can't quite understand this comment - perhaps you could try 
> > > > > rephrasing it?
> > > > I'm not quite following why you needed to add these special members; it 
> > > > seems like just the destructor would be enough for the assertion; but 
> > > > if you do need them, can/should they be `= default`?
> > > They can't be defaulted as we don't want to copy the RefCount.
> > I understand it in my head, just can't think of the best way to write it 
> > down.
> Maybe something like this would work:
> ```
> /// Do not copy or move RefCount when constructing or assigning from
> /// a derived type. These operations don't imply anything about the
> /// number of IntrusiveRefCntPtr instances.
> ```
> WDYT?
Ah, I get it, thanks for explaining.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D92480/new/

https://reviews.llvm.org/D92480

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to