[PATCH] D35043: [ADT] Enable reverse iteration for DenseMap

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Sun Aug 6 15:17:48 PDT 2017


I'd still prefer not to build another trait for this unless we have to - is
there a reason we'd want is_pointer to not be true for some types that are
PointerLike? (or conversely, for it to be true for some types that aren't
PointerLike)

On Sun, Aug 6, 2017 at 11:52 AM Mandeep Singh Grang via Phabricator <
reviews at reviews.llvm.org> wrote:

> mgrang added inline comments.
>
>
> ================
> Comment at: include/llvm/Support/PointerLikeTypeTraits.h:35
> +// Trait to check if T is pointer.
> +template<typename T>
> +struct is_pointer { static const bool value = false; };
> ----------------
> mgrang wrote:
> > Just checking if T is a complete type is not enough due to the presence
> of specialization for const T:
> > template <typename T> class PointerLikeTypeTraits<const T>
> >
> > In this case, for a const int the type is complete but it's not a
> pointer type. So to handle such cases I had to check for is_pointer too.
> We might as well not check for is_complete and just check for is_pointer,
> and then add more specialization for is_pointer of other ptr types (like
> shared, unique ptr, etc)?
>
>
> Repository:
>   rL LLVM
>
> https://reviews.llvm.org/D35043
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170806/0d5bd7fd/attachment.html>


More information about the llvm-commits mailing list