Structural variant
От: para  
Дата: 18.04.11 16:13
Оценка:
using Nemerle.Extensions;
module Program
{
  [StructuralEquality]  
  public variant V  
  {
    | V1  
    | V2{ x: double }
  }

  Main() : void
  {    
    def a = V.V2(1);
    def b = V.V2(2);
    
    def r = a.Equals(b); // true !!! т/е. (a :> V).Equals(b :> V) == true
  }
}

понятно что это решается
  [StructuralEquality]  
  public variant V  
  {
    | V1  
    [StructuralEquality]
    | V2{ x: double }
  }


это недостаток макроса?
или на такое использование варианты не расчитаны?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.