[Nemerle] imlicit/explicit user convertions
От: chudo19  
Дата: 10.11.06 13:07
Оценка: 1 (1)
Как записать эквивалент
public static implicit/explicit operator NewType(OldType m){....}
на Nemerle ?
Заранее благодарен.

30.01.07 18:07: Перенесено модератором из 'Декларативное программирование' — IT
Re: [Nemerle] imlicit/explicit user convertions
От: Vermicious Knid  
Дата: 10.11.06 16:47
Оценка: 6 (1)
Здравствуйте, chudo19, Вы писали:

C>Как записать эквивалент

C>public static implicit/explicit operator NewType(OldType m){....}
C>на Nemerle ?
C>Заранее благодарен.
    // implicit
    public static @:(x : OldType) : NewType
    // explicit
    public static @:>(x : OldType) : NewType

Правда в текущей ревизии компилятора нельзя определить несколько таких операторов, сигнатура которых различается лишь возвращаемым типом. Я как-то отправлял баг-репорт и патч, но разработчики почему-то решили, что у меня есть доступ к svn(или желание его получить) и я залью его самостоятельно. В итоге эта проблема до сих пор не исправлена.
Re: [Nemerle] imlicit/explicit user convertions
От: Алексей П Россия  
Дата: 10.11.06 16:58
Оценка:
Здравствуйте, chudo19, Вы писали:

C>Как записать эквивалент

C>public static implicit/explicit operator NewType(OldType m){....}
C>на Nemerle ?
C>Заранее благодарен.

public static @:> (m: OldType): NewType {...}

Это explicit, логично предположить что implicit было бы @:, но не работает. Вообще имхо implicit преобразование резко понижает очевидность кода, я его и не использую никогда.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: [Nemerle] imlicit/explicit user convertions
От: PhantomIvan  
Дата: 10.11.06 18:02
Оценка:
Здравствуйте, Vermicious Knid, Вы писали:

VK>Здравствуйте, chudo19, Вы писали:


C>>Как записать эквивалент

C>>public static implicit/explicit operator NewType(OldType m){....}
C>>на Nemerle ?
C>>Заранее благодарен.
VK>
VK>    // implicit
VK>    public static @:(x : OldType) : NewType
VK>    // explicit
VK>    public static @:>(x : OldType) : NewType
VK>

VK>Правда в текущей ревизии компилятора нельзя определить несколько таких операторов, сигнатура которых различается лишь возвращаемым типом. Я как-то отправлял баг-репорт и патч, но разработчики почему-то решили, что у меня есть доступ к svn(или желание его получить) и я залью его самостоятельно. В итоге эта проблема до сих пор не исправлена.

отлично... в смысле очень плохо, но теперь я кажется понял откуда у меня проблема с конверсией некоторых вещей для сторонней библиотеки
эту проблему надо решать однако
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: [Nemerle] imlicit/explicit user convertions
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.11.06 19:51
Оценка:
Здравствуйте, Vermicious Knid, Вы писали:


VK>Правда в текущей ревизии компилятора нельзя определить несколько таких операторов, сигнатура которых различается лишь возвращаемым типом.


Уже можно. Твой патч внесли. Он правда был с багом, но его тоже уже пофиксили.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: [Nemerle] imlicit/explicit user convertions
От: chudo19  
Дата: 13.11.06 12:36
Оценка:
Кстати обнаружил еще варант

public static op_Explicit/op_Implicit ( m:Type2):Type1
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.