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

Basile-z <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |[email protected]
         Resolution|---                         |WORKSFORME

--- Comment #2 from Basile-z <[email protected]> ---
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 )
}   
---

--

Reply via email to