
Igor
30.03.2018
09:49:53
вроде же есть в планах много alias this

Valeriy
30.03.2018
09:50:11
Круто было бы

Dark
30.03.2018
09:50:18

Google

Maxim
30.03.2018
09:50:20

Igor
30.03.2018
09:50:30
мин, поищу

Dark
30.03.2018
09:52:19
Раз речь зашла о темплейтах, я так понял, темплейты с разные условия , но одинаковыми сигнатурами, не разрешаются?

Maxim
30.03.2018
09:52:23
в во DIP66 — оно?)

Igor
30.03.2018
09:53:21
https://forum.dlang.org/post/mailman.1769.1492792223.31550.digitalmars-d@puremagic.com
да, типа того
годичной свежести дискуссия

Maxim
30.03.2018
09:54:13
https://github.com/dlang/dmd/pull/3998 видимо, про этот PR

Denis
30.03.2018
10:02:09

Evgeny
30.03.2018
10:03:36
что-то когда-то обсуждали, но не помню, чтобы это было в планах
Это не просто в планах, множественный `alias this`явно прописан в спеках
Multiple AliasThis are allowed. For implicit conversions and forwarded lookups, all AliasThis declarations are attempted; if more than one AliasThis is eligible, the ambiguity is disallowed by raising an error. Note: Multiple AliasThis is currently unimplemented.
https://dlang.org/spec/class.html#alias-this

Maxim
30.03.2018
10:04:18
Note: Multiple AliasThis is currently unimplemented.

Evgeny
30.03.2018
10:04:36

Google

Maxim
30.03.2018
10:04:55
unimplemented
нету его
хоть на небе может быть прописан, хоть на ягодицах аллаха, но его нет)

Evgeny
30.03.2018
10:06:01
Ты сказал, что этого нет в планах. Но если он прописан в спеках, значит в планах он есть. Более того, существует PR

Maxim
30.03.2018
10:06:11
который прикрыли)

Evgeny
30.03.2018
10:06:27
Что-то там не понравилось столпам D

Pavel
30.03.2018
10:06:46

Valeriy
30.03.2018
10:07:30

Evgeny
30.03.2018
10:07:56
Да нормально работало. В идеале нужен opImplicitCast
это добавляет возможностей прострелить себе йайца, но по крайней мере стреляющий сделает это сознательно.

Maxim
30.03.2018
10:08:58
не, ну implicit cast объекта, например, в int и ubyte[] — это понятно
а в int и ubyte — это уже ambiguity, которая в любом случае будет падать с ошибкой)
хотя, конечно, тоже разрулить можно, но не факт)

Evgeny
30.03.2018
10:10:57
если я пишу int a = foo;, то никакого ambiguity нет

Maxim
30.03.2018
10:11:42
а если
byte a = 5;
int b = a + foo;

Evgeny
30.03.2018
10:11:43

Maxim
30.03.2018
10:12:04
это в каком таком случае?

Evgeny
30.03.2018
10:13:07
тот же alias this - суть неявное преобразование

Maxim
30.03.2018
10:13:30
а операцию сложения делать как? байт с байтом или байт с интом?)

Google

Evgeny
30.03.2018
10:13:49

Maxim
30.03.2018
10:13:57

Evgeny
30.03.2018
10:14:20

Maxim
30.03.2018
10:15:23
ну давай сейчас займемся жонглированием словами и чесанием эго, да?)
ладно, скажу так, в D есть неявное преобразование структур и объектов в один конкретный тип для каждой структуры и объекта)

Evgeny
30.03.2018
10:15:59
его нет в текущей имплементации компиляторов D

Maxim
30.03.2018
10:17:07
писанные вилами на воде и падающие с ошибкой в любом неопределенном случае by design

Evgeny
30.03.2018
10:17:13
но в самом языке он есть

Maxim
30.03.2018
10:17:39
будь по-твоему, их нет, но они есть)

Evgeny
30.03.2018
10:17:59

Evgeny
30.03.2018
10:18:23
Они есть в языке, но нет в компиляторах. для тебя язык === компилятор?

Maxim
30.03.2018
10:18:26
ну конечно же я, ты же у нас, как мы выяснили, опытный разработчик, авторитет)

Evgeny
30.03.2018
10:18:52

Maxim
30.03.2018
10:19:22
ну тогда программу с множественными неявными преобразованиями в студию)

Evgeny
30.03.2018
10:20:35

Maxim
30.03.2018
10:20:57
другими словами, они есть, но их нет)
или они есть, но это не точно)

Evgeny
30.03.2018
10:21:30
а если
byte a = 5;
int b = a + foo;
Тебя не смущает, что вот тут нет никакого ambiguity?
auto foo(byte a) { return a + 1; }
auto foo(int a) { return a + 1; }
void main()
{
int a = 1;
byte b = 2;
foo(a);
foo(b);
}

Google

Maxim
30.03.2018
10:21:32
или, в спецификации языка есть, но в реализации нет)

Evgeny
30.03.2018
10:21:48
пока нет

Maxim
30.03.2018
10:22:09
пока нет
ну это уже твое личное предположение)
по факту — нет.
PR, который висел с 14 года, закрыли

Evgeny
30.03.2018
10:22:41

Maxim
30.03.2018
10:22:54
человек спрашивал, как это сделать, я ему сказал, что нету такого в D, ни как не сделать
и тут пришел ты)

Evgeny
30.03.2018
10:23:14
я возразил не на это

Admin
ERROR: S client not available

Maxim
30.03.2018
10:23:42
ну ок, тогда я уточню, что под D я подразумевал существующие реализации диалекта языка
и закруглимся на этом

Evgeny
30.03.2018
10:24:15
я уточнил, что фраза "в D нет неявных преобразований" в общем случае неверна. Даже добавил "в общем случае", намекая, что в данном частном все верно.
но ты предпочел обидется

Maxim
30.03.2018
10:24:42
намекая на то, что опять пришел повыебываться)
ок, я понял)

Evgeny
30.03.2018
10:25:30

Maxim
30.03.2018
10:25:43
а мы уже закончили дискуссию, не?)

Evgeny
30.03.2018
10:26:48

Maxim
30.03.2018
10:27:30
дискуссия закончилась на том, что в спеках есть, в реализации нет, и даже единственный PR на эту тему протух, и его прикрыли

Google

Maxim
30.03.2018
10:28:12
и человеку, который спрашивал о том, как сделать можественные неявные преобразования, от спеков ни холодно, ни жарко

Evgeny
30.03.2018
10:28:12
Ага, только при чем тут мое эго, авторитеты и прочая хуйня?

Maxim
30.03.2018
10:28:19
не знаю
видимо, оно уязвлено

Evgeny
30.03.2018
10:28:57
видимо, оно уязвлено
У меня создается впечатление, что что-то уязвлено у тебя, раз ты так бурно реагируешь на уточнения.
У меня нет никакого желания быть авторитетом, более того я сам часто ошибаюсь

Maxim
30.03.2018
10:29:40
пусть будет так, на этом предлагаю закруглить твои уточнения)
и мирно жать, когда множественные alias this появятся в реализации
после этого дискуссию можно будет возобновить)

Evgeny
30.03.2018
10:30:36

Maxim
30.03.2018
10:30:52
ок, давай закруглим срач)

Evgeny
30.03.2018
10:31:31
Ок. И обсудим, неявные преобразования - это зло или таки нет?

Maxim
30.03.2018
10:32:00
в общем случае (с) зло)

Evgeny
30.03.2018
10:32:38
Я, лично, обычно не чувствовал необходимость в множественном `alias this`но несколько раз было.

Maxim
30.03.2018
10:33:02
ну да, иногда лень касты писать

Evgeny
30.03.2018
10:33:42
Но я бы не сказал что программируя на плюсах, страдал от ошибок связанных с неявным преобразованием

Pavel
30.03.2018
10:35:35

Evgeny
30.03.2018
10:36:09
И, пожалуйста не надо снова сраться. Вроде как PR на alias this не закрыт - https://github.com/dlang/dmd/pull/3998
Но таки сильно устарел, да
Похоже причина в том, что автор PR как-то подзабил на это дело

Stepanos
30.03.2018
11:31:02
https://m.habrahabr.ru/post/352388/comments/
поддержите коментарий кто может)

Igor
30.03.2018
13:31:29
прикольно что multiple alias this в первой пятерке missed language features судя по survey