@dlangru

Страница 485 из 719
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
вроде же есть в планах много alias this
что-то когда-то обсуждали, но не помню, чтобы это было в планах

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

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
Note: Multiple AliasThis is currently unimplemented.
И? Это ты типа так возразил?

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
Очень удобно это в C++. Позволяет делать гибкие интерфейсы
Да ладно. Предупреждениями завалит же.

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
нет в D неявных преобразований
тем более, что в общем случае это изречение неверно

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

Evgeny
30.03.2018
10:13:07
это в каком таком случае?
byte a = 10; int b = a; // неявное преобразование byte в int.

тот же alias this - суть неявное преобразование

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

Google
Maxim
30.03.2018
10:13:57
тот же alias this - суть неявное преобразование
вот когда их будет много, это будет неявное преобразование, сейчас это просто alias

Evgeny
30.03.2018
10:14:20
Maxim
30.03.2018
10:15:23
ну давай сейчас займемся жонглированием словами и чесанием эго, да?)

ладно, скажу так, в D есть неявное преобразование структур и объектов в один конкретный тип для каждой структуры и объекта)

Evgeny
30.03.2018
10:15:59
ну давай сейчас займемся жонглированием словами и чесанием эго, да?)
ну как бы ты этим занимаешься. alias this - это однозначно преобразование и оно неявное.

его нет в текущей имплементации компиляторов 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
ну тогда программу с множественными неявными преобразованиями в студию)
легко, но она не скомпилируется, так как текущие компиляторы не поддерживают множественный алиас this. Но народ давит, и полагаю он появится в конце-концов. Либо его уберут из спеков.

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
С чего бы? не заваливало вроде
О чем молчит gcc с -Wall на то msvc с /W3 орёт благим матом.

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

Страница 485 из 719