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