1) C# покажет ворнинг если у тебя есть невиртуальные одинаковые по сигнатуре методы в иерархии, попросит тебя вручную добавить ключевое слово = подпись что ты согласен с тем, что хочешь отстрелить ногу 2) мне не ясно когда автовод может запутать программиста и вызвать не то что он хочет
1) C# покажет ворнинг если у тебя есть невиртуальные одинаковые по сигнатуре методы в иерархии, попросит тебя вручную добавить ключевое слово = подпись что ты согласен с тем, что хочешь отстрелить ногу 2) мне не ясно когда автовод может запутать программиста и вызвать не то что он хочет
2) var smth = obj.GetSmth(); и в какой-то момент у GetSmth поменялся возвращаемый тип
1) C# покажет ворнинг если у тебя есть невиртуальные одинаковые по сигнатуре методы в иерархии, попросит тебя вручную добавить ключевое слово = подпись что ты согласен с тем, что хочешь отстрелить ногу 2) мне не ясно когда автовод может запутать программиста и вызвать не то что он хочет
Если проигнорировать п.1, а компилятор не так себя поведёт, как ожидаешь
2) var smth = obj.GetSmth(); и в какой-то момент у GetSmth поменялся возвращаемый тип
а ну про это я уже писал выше — автовывод, когда тип не на 100% понятен из выражения справа — это эгоизм по отношению к тем, кто будет читать\ревьювить твой код после тебя
а ну про это я уже писал выше — автовывод, когда тип не на 100% понятен из выражения справа — это эгоизм по отношению к тем, кто будет читать\ревьювить твой код после тебя
касты обычно происходят когда ты явно тип указал, а он вывелся не такой и его еще нужно привести в нормальных языках не взрывается, а вот в плюсах легко
А в плюсах можно как-то поправить типизацию, кроме -Wconversion?
А в плюсах можно как-то поправить типизацию, кроме -Wconversion?
можно, не писать на плюсах. писать explcit на всех одноаргументных конструкторах, не делать тихих конверсий - все определенные операторы приведения делать тоже explicit
а ну про это я уже писал выше — автовывод, когда тип не на 100% понятен из выражения справа — это эгоизм по отношению к тем, кто будет читать\ревьювить твой код после тебя
ну при вызове метода у параметров не пишутся же типы, хотя по вызывающему коду нельзя точно сказать какие именно типы у этих параметров и даже какой конкретно метод вызывается (с учётом перегрузок)
то есть без ide или без просмотра вызываемого кода мы всё равно не можем точно понять, что именно мы вызываем, собственно с выводом типов возвращаемых значений примерно такая же история