Size: a a a

Compiler Development

2020 February 27

E

EgorBo in Compiler Development
источник

M

MaxGraey in Compiler Development
EgorBo
1) C# покажет ворнинг если у тебя есть невиртуальные одинаковые по сигнатуре методы в иерархии, попросит тебя вручную добавить ключевое слово = подпись что ты согласен с тем, что хочешь отстрелить ногу
2) мне не ясно когда автовод может запутать программиста и вызвать не то что он хочет
Вот мне тоже не ясно)
источник

А

Алексей in Compiler Development
EgorBo
1) C# покажет ворнинг если у тебя есть невиртуальные одинаковые по сигнатуре методы в иерархии, попросит тебя вручную добавить ключевое слово = подпись что ты согласен с тем, что хочешь отстрелить ногу
2) мне не ясно когда автовод может запутать программиста и вызвать не то что он хочет
2) var smth = obj.GetSmth(); и в какой-то момент у GetSmth поменялся возвращаемый тип
источник

Т8

Т-34 85 in Compiler Development
EgorBo
1) C# покажет ворнинг если у тебя есть невиртуальные одинаковые по сигнатуре методы в иерархии, попросит тебя вручную добавить ключевое слово = подпись что ты согласен с тем, что хочешь отстрелить ногу
2) мне не ясно когда автовод может запутать программиста и вызвать не то что он хочет
Если проигнорировать п.1, а компилятор не так себя поведёт, как ожидаешь
источник

А

Алексей in Compiler Development
это хорошо
источник

А

Алексей in Compiler Development
MaxGraey
Обычно такое ловиться во время компиляции если конечно Overriding (не путать с Overloading) не «фича» ЯП как в Java =)
речь шла именно про невиртуальные методы
источник

E

EgorBo in Compiler Development
Алексей
2) var smth = obj.GetSmth(); и в какой-то момент у GetSmth поменялся возвращаемый тип
а ну про это я уже писал выше — автовывод, когда тип не на 100% понятен из выражения справа — это эгоизм по отношению к тем, кто будет читать\ревьювить твой код после тебя
источник

А

Алексей in Compiler Development
в джаве вроде таких не наблюдается
источник

E

EgorBo in Compiler Development
так что выстрел в ногу тут даже полезен - отучишься так писать
источник

А

Алексей in Compiler Development
EgorBo
а ну про это я уже писал выше — автовывод, когда тип не на 100% понятен из выражения справа — это эгоизм по отношению к тем, кто будет читать\ревьювить твой код после тебя
ну это уже спорно как раз
источник

Т8

Т-34 85 in Compiler Development
Berkus Decker
касты обычно происходят когда ты явно тип указал, а он вывелся не такой и его еще нужно привести
в нормальных языках не взрывается, а вот в плюсах легко
А в плюсах можно как-то поправить типизацию, кроме -Wconversion?
источник

BD

Berkus Decker in Compiler Development
Т-34 85
А в плюсах можно как-то поправить типизацию, кроме -Wconversion?
можно, не писать на плюсах. писать explcit на всех одноаргументных конструкторах, не делать тихих конверсий - все определенные операторы приведения делать тоже explicit
источник

BD

Berkus Decker in Compiler Development
чем больше в плюсах [explicit] lyrics тем безопаснее в итоге
источник

Т8

Т-34 85 in Compiler Development
Berkus Decker
чем больше в плюсах [explicit] lyrics тем безопаснее в итоге
Так это надо std и сторонние либы переписать
источник

BD

Berkus Decker in Compiler Development
Т-34 85
Так это надо std и сторонние либы переписать
проще на расте написать и подсунуть через ffi
источник

А

Алексей in Compiler Development
EgorBo
а ну про это я уже писал выше — автовывод, когда тип не на 100% понятен из выражения справа — это эгоизм по отношению к тем, кто будет читать\ревьювить твой код после тебя
ну при вызове метода у параметров не пишутся же типы, хотя по вызывающему коду нельзя точно сказать какие именно типы у этих параметров и даже какой конкретно метод вызывается (с учётом перегрузок)
источник

Т8

Т-34 85 in Compiler Development
Berkus Decker
проще на расте написать и подсунуть через ffi
@zamazan4ik как тебе идея?
источник

А

Алексей in Compiler Development
то есть без ide или без просмотра вызываемого кода мы всё равно не можем точно понять, что именно мы вызываем,
собственно с выводом типов возвращаемых значений примерно такая же история
источник

AZ

Alexander Zaitsev in Compiler Development
Т-34 85
@zamazan4ik как тебе идея?
идея чего? я за тредом не слежу
источник

Т8

Т-34 85 in Compiler Development
Alexander Zaitsev
идея чего? я за тредом не слежу
Написать std для C++ на Rust и через FFI выдать
источник