<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><font size="+1">I have removed the is_pointer trait. I thought we
wanted it to work exactly for all pointer and pointer-like types.
That's the reason I had an is_pointer trait.</font></p>
<p><font size="+1">So now how do we define the behavior for reverse
iteration? It is no longer tied to pointer types, right? As long
as a type is complete it will reverse iterate.</font><br>
</p>
<br>
<div class="moz-cite-prefix">On 8/6/2017 3:17 PM, David Blaikie
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAENS6EtJmzn0pKEUiDxSOY-orocMD1QqXRqeCTjwfecXTAMWjw@mail.gmail.com">
<div dir="ltr">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)</div>
<br>
<div class="gmail_quote">
<div dir="ltr">On Sun, Aug 6, 2017 at 11:52 AM Mandeep Singh
Grang via Phabricator <<a
href="mailto:reviews@reviews.llvm.org"
moz-do-not-send="true">reviews@reviews.llvm.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">mgrang added
inline comments.<br>
<br>
<br>
================<br>
Comment at: include/llvm/Support/PointerLikeTypeTraits.h:35<br>
+// Trait to check if T is pointer.<br>
+template<typename T><br>
+struct is_pointer { static const bool value = false; };<br>
----------------<br>
mgrang wrote:<br>
> Just checking if T is a complete type is not enough due
to the presence of specialization for const T:<br>
> template <typename T> class
PointerLikeTypeTraits<const T><br>
><br>
> 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.<br>
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)?<br>
<br>
<br>
Repository:<br>
rL LLVM<br>
<br>
<a href="https://reviews.llvm.org/D35043" rel="noreferrer"
target="_blank" moz-do-not-send="true">https://reviews.llvm.org/D35043</a><br>
<br>
<br>
<br>
</blockquote>
</div>
</blockquote>
<br>
</body>
</html>