[PATCH] D54472: Disable invalid isPodLike<> specialization

serge via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 28 07:15:10 PST 2018


serge-sans-paille marked an inline comment as done.
serge-sans-paille added inline comments.


================
Comment at: include/llvm/ADT/SmallVector.h:185
+/// put method implementations that are designed to work with non-POD-like T's.
+template <typename T, bool is_trivially_copyable>
 class SmallVectorTemplateBase : public SmallVectorTemplateCommon<T> {
----------------
dexonsmith wrote:
> chandlerc wrote:
> > Quuxplusone wrote:
> > > Incidentally, unless there's a portability issue I'm not aware of, I would prefer to write this as
> > > 
> > >     template <typename T, bool = is_trivially_copyable<T>::value>
> > >     class SmallVectorTemplateBase : public SmallVectorTemplateCommon<T> {
> > > 
> > > so that on line ~322 you could write simply
> > > 
> > >     template <typename T>
> > >     class SmallVectorImpl : public SmallVectorTemplateBase<T> {
> > >       using SuperClass = SmallVectorTemplateBase<T>;
> > > 
> > > without repeating your `is_trivially_copyable<T>::value` all over the place.
> > > 
> > > The more times you have to manually type out `is_trivially_copyable<T>::value`, the greater the chance you'll slip up and write `std::is_trivially_copyable<T>::value` on autopilot.
> > While this might be an independently nice improvement, I agree w/ the current mechanics of the patch to make the diff more isolated.
> It doesn't seem completely independent to me, because this patch introduces repeated instances of (reader's) ambiguity between is_trivially_copyable and std::is_trivially_copyable.
> 
> Can the mechanical change suggested by @Quuxplusone be implemented as an initial NFC commit on isPodLike (and then this patch rebased on top)?  If so, that would avoid cluttering this diff.
Patch proposed in https://reviews.llvm.org/D55005


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

https://reviews.llvm.org/D54472





More information about the llvm-commits mailing list