LINUX.ORG.RU

История изменений

Исправление DarkEld3r, (текущая версия) :

Таких, как в примере с optional, достаточно много.

Не уверен. Хотя мне сложно судить - пишу-то как раз на плюсах, в основном. Было бы забавно «отключить» неявные приведения во всей кодовой базе и посмотреть насколько много изменений понадобится, но такой эксперимент провести затруднительно.

«Выписывать руками» - для наглядности. По месту вызова видно что передаётся optional, а не значение. Можно, конечно, кричать, что это фатальный недостаток, но это компромисс. Явно/«надёжности» и краткости. Да, во многих случаях, неявные приведения никак не влияют на надёжность, но как по мне, лучше иметь одно правило, чем 100500 особых случаев.

Про опциональные параметры в курсе, просто не понял суть претензии. Согласен, это весьма неприятно.

которое уродливо в том числе потому, что в нем логика перевернута с ног на голову

Обычный «buider» паттенр, ничего особенного. Хотя и неприятно, что в нём есть необходимость.

В С++ есть возможность использовать переменное кол-во аргументов

Да, переменного количества аргументов тоже нет. Но тебе не кажется, что ограничения типа «чур без использования макросов» не слишком честные? Можно делать так (через стороннюю либу), например:

let v: Vec<i32> = collect![1, 2, 3];

Исходная версия DarkEld3r, :

Таких, как в примере с optional, достаточно много.

Не уверен. Хотя мне сложно судить - пишу-то как раз на плюсах, в основном. Было бы забавно «отключить» неявные приведения во всей кодовой базе и посмотреть насколько много изменений понадобится, но такой эксперимент провести затруднительно.

«Выписывать руками» - для наглядности. По месту вызова видно что передаётся optional, а не значение. Можно, конечно, кричать, что это фатальный недостаток, но это компромисс. Явно/«надёжности» и краткости. Да, во многих случаях, неявные приведения никак не влияют на надёжность, но как по мне, лучше иметь одно правило, чем 100500 особых случаев.

Про опциональные параметры в курсе, просто не понял суть претензии. Согласен, это весьма неприятно.

которое уродливо в том числе потому, что в нем логика перевернута с ног на голову

Обычный «buider» паттенр, ничего особенного. Хотя и неприятно, что в нём есть необходимость.

В С++ есть возможность использовать переменное кол-во аргументов

Да, переменного количества аргументов тоже нет. Но тебе не кажется, что ограничения типа «чур без использования макросов» не слишком честные? Можно делать так (через стороннюю либу), например:

let c: Vec<i32> = collect![1, 2, 3];