[Issue 11905] Can't make enum of custom struct types autoincrement working

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Feb 11 07:34:09 UTC 2023


https://issues.dlang.org/show_bug.cgi?id=11905

Basile-z <b2.temp at gmx.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |b2.temp at gmx.com
         Resolution|---                         |WORKSFORME

--- Comment #2 from Basile-z <b2.temp at gmx.com> ---
This is working since 2.099 and the test suite contains a similar test to

---
struct enumf( T = ushort ) {

    enum max = T.max;


  alias val this;
  T val = 1;
  this( T val ) {
    this.val = val;
  }
  this( int val ) {
    this.val = cast( T ) val;
  }

  void opAssign( int val ) {
    this.val = cast( T ) val;
  }

  enumf!T opBinary( string op : "+" )( T add ) {
    return enumf!T( val << add );
  }

  int opCmp( enumf!T other ) {
    if( other.val == val )
      return 0;
    else if( val > other.val )
      return 1;
    else
      return -1;
  }

}

enum F {
  halCenter = enumf!ushort(),
  halRight,
  valCenter = enumf!ushort( 2 ),
  valRight = enumf!ushort( 1 )
}   
---

--


More information about the Digitalmars-d-bugs mailing list