On Friday, 5 April 2013 at 18:03:33 UTC, Chad Joan wrote:
On 04/05/2013 01:48 PM, Chad Joan wrote:
On 04/05/2013 01:18 PM, Andrej Mitrovic wrote:
On 4/5/13, Chad Joan<[email protected]> wrote:
Enums do not have instances.
Sure they do.
enum Foo
{
X,
Y
}
void test(Foo foo) { }
void main()
{
Foo foo = Foo.Y;
test(foo);
}
foo is the instance.
I can probably word this another way, since I might not have
been entirely clear.
Things like structs and classes occupy memory. Enums do not.
Foo.Y expands to an immediate value and has no storage in the
program's data segment. Enums place constraints on other
things that do occupy memory: usually integers.
foo does occupy memory. That foo is represented just like an
integer does not change this. foo could be a struct or an array,
too.