<div dir="ltr">FYI I took the example from the [C++1z standard](<a href="http://eel.is/c++draft/expr.prim.id#2">http://eel.is/c++draft/expr.prim.id#2</a>)<div><br></div><div>> [<a href="http://expr.prim.id">expr.prim.id</a>]p2:<div>> An id-expression that denotes a non-static data member or non-static member function of a class can only</div><div>> be used [...] if that id-expression denotes a non-static data member and it appears in an unevaluated operand.<br></div></div><div><br></div><div>Here is another example that works in C++03 as well as C++11:</div><div><br></div><div><div>```</div><div><div>template <class T></div><div>T foo() {</div><div>  _Static_assert(sizeof(T) != sizeof(T),</div><div>                 "foo can not appear in a potentially evaluated expression");</div><div>}</div><div>typedef __typeof(foo<int>()) T; // OK. Unevaluated context.</div><div>int x = sizeof(foo<int>()); // Ill-formed. Triggers assertion because a definition is required.</div></div></div><div>```</div><div><br></div><div>/Eric</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Nov 18, 2016 at 12:52 PM, Paulo Matos via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
On 18/11/16 20:30, Aaron Ballman wrote:<br>
> On Fri, Nov 18, 2016 at 2:22 PM, Paulo Matos via cfe-commits<br>
> <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br>
>> pmatos added a comment.<br>
>><br>
>> Apologies if I am being shallow and wasting your time but `sizeof(T::m)` doesn't compile at the moment with clang trunk. Using the same service you used before <<a href="http://melpon.org/wandbox/permlink/C4pCnoVGmS0qBUxf" rel="noreferrer" target="_blank">http://melpon.org/wandbox/<wbr>permlink/C4pCnoVGmS0qBUxf</a>>.<br>
><br>
> Compile for C++11 instead of C++03.<br>
><br>
<br>
</span>OK, I can see the problem. Interestingly, the error you get with the<br>
patch and c++11 is the same you used to get with c++03.<br>
<br>
I will take a look at this.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Paulo Matos<br>
</font></span><div class="HOEnZb"><div class="h5">______________________________<wbr>_________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-commits</a><br>
</div></div></blockquote></div><br></div>