Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
January 26, 2017 Allow static methods and fields for enum? | ||||
---|---|---|---|---|
| ||||
Why not make enum a comparable type to structs and classes? They are static so they can't contain any mutable fields but surely they can contain methods? And especially they should be able to contain static methods!? |
January 26, 2017 Re: Allow static methods and fields for enum? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Profile Anaysis | 26.01.2017 09:32, Profile Anaysis пишет:
> Why not make enum a comparable type to structs and classes?
>
> They are static so they can't contain any mutable fields but surely they
> can contain methods? And especially they should be able to contain
> static methods!?
>
>
>
What prevents you from using UFCS with enum members or templates with enum itself? (not tested)
|
January 26, 2017 Re: Allow static methods and fields for enum? | ||||
---|---|---|---|---|
| ||||
Posted in reply to drug | On Thursday, 26 January 2017 at 06:40:59 UTC, drug wrote:
> 26.01.2017 09:32, Profile Anaysis пишет:
>> Why not make enum a comparable type to structs and classes?
>>
>> They are static so they can't contain any mutable fields but surely they
>> can contain methods? And especially they should be able to contain
>> static methods!?
>>
>>
>>
> What prevents you from using UFCS with enum members or templates with enum itself? (not tested)
This is one solution, but it would still be useful as an organizational tool to be able to put those methods in the enum's own namespace.
|
January 26, 2017 Re: Allow static methods and fields for enum? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Profile Anaysis | On Thursday, January 26, 2017 06:32:10 Profile Anaysis via Digitalmars-d wrote:
> Why not make enum a comparable type to structs and classes?
>
> They are static so they can't contain any mutable fields but surely they can contain methods? And especially they should be able to contain static methods!?
If you want an enum type with methods, use a struct type that has methods. Enums don't have to be integral types.
- Jonathan M Davis
|
January 26, 2017 Re: Allow static methods and fields for enum? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Profile Anaysis | V Thu, 26 Jan 2017 06:32:10 +0000
Profile Anaysis via Digitalmars-d <digitalmars-d@puremagic.com> napsáno:
> Why not make enum a comparable type to structs and classes?
>
> They are static so they can't contain any mutable fields but surely they can contain methods? And especially they should be able to contain static methods!?
>
struct EnumWithMethods
{
@disable this();
static enum Senum
{
one,
two,
three,
}
alias Senum this;
static getOne()
{
return this.one;
}
}
void main()
{
import std.stdio;
auto x = EnumWithMethods.one;
auto y = EnumWithMethods.getOne();
writeln(x);
writeln(y);
}
|
Copyright © 1999-2021 by the D Language Foundation