On 26 November 2012 15:00, monarch_dodra <span dir="ltr"><<a href="mailto:monarchdodra@gmail.com" target="_blank">monarchdodra@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Monday, 26 November 2012 at 12:46:10 UTC, Manu wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
On 26 November 2012 14:39, Andrej Mitrovic <<a href="mailto:andrej.mitrovich@gmail.com" target="_blank">andrej.mitrovich@gmail.com</a>><u></u>wrote:<br>
<br>
</div><div><div class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 11/26/12, Manu <<a href="mailto:turkeyman@gmail.com" target="_blank">turkeyman@gmail.com</a>> wrote:<br>
> 1.<br>
><br>
> enum i = 10;<br>
> pragma(msg, is(i == enum) || is(typeof(i) == enum)); // <- > false?!<br>
><br>
> I can't find a way to identify that i is an enum, not a > variable; can not<br>
> be assigned, has no address, etc.<br>
<br>
It's not an enum, it's a manifest constant.<br>
<br>
</blockquote>
<br></div></div><div class="im">
Well that's certainly not intuitive. I've never even heard that term<br>
before. It looks awfully like an enum, with the whole 'enum' keyword and<br>
all ;)<br>
How do I detect that then?<br>
</div></blockquote>
<br>
The term enum (AFAIK) is comes from an old C++ hack, where you'd create an actual enum to represent variable that's useable compile-time.<br>
<br>
Anyways, when you declare an actual enumerate, you have to declare:<br>
1) The enum type<br>
2) The enum values<br>
3) The enum variable<br>
<br>
So in your case, it would have to be:<br>
--------<br>
enum Enumerate<br>
{<br>
   state1 = 10,<br>
   state2<br>
}<br>
Enumerate i = Enumerate.state1;<br>
-----<br>
</blockquote></div><br></div><div class="gmail_extra">I'm not looking for a hot-to use enums, I need to know how to form an expression to make the pragma show true in precisely that context.</div>