170 похожих чатов

Можно ли использовать тип данных auto в серьезном коде?

19 ответов

12 просмотров

Нужно. Ибо auto серьёзно снижает когнитивную сложность и при разработке и при чтении кода. В тоже время, злоупотреблять им не стоит, поскольку чрезмерное его использование вызывает у программиста вопросы о природе тех или иных объектов.

auto использовать можно и нужно в том случае, когда из правой части выражения однозначно понятно, какой тип будет в левой части, например auto user = std::make_unique<User>();

Till Schneider
auto использовать можно и нужно в том случае, когд...

Или, напротив, не понятно какой там тип справа тоже использовать: std::vector<int> v; auto it = v.begin();

Очень аккуратно. При изобиловании ауто в какой то момент сам перестаешь понимать что тут должно быть. ИДЕ виснуть начинает. Рефакторинг начинает быть малопредсказуем. Короче, всегда если не в лом лучше писать тип. Это правило не касается шаблонов на ауто специально построенных.

Нужно

netricks
Нужно. Ибо auto серьёзно снижает когнитивную сложн...

А по мне так авто наоборот повышает когнитивную сложность. Так как очень часто программисты не могут остановиться и просто используют авто везде. Читать такой код сложнее

Anatoly Shirokov
Или, напротив, не понятно какой там тип справа тож...

лучше бы этого примера там не было) итератор вполне явный тип справа) а вот применение auto в шаблонном коде иногда действительно полезно, так как там проще написать auto, чем выводить тип возвращаемого значения

Till Schneider
лучше бы этого примера там не было) итератор впол...

итератор вполне явный тип справа Ага, особенно в случае условного boost::multi_index_container

Stas
У меня телефон

Ревью кода на работе делаешь с мобилы?

Dmitriy [Отпуск]
В Бусте так не принято

Соболезную * мем со свечкой *

feedable
база

Почему ты постоянно пишешь "база". Что ты этим хочешь сказать?

Stas
Почему ты постоянно пишешь "база". Что ты этим хоч...

Ну посмотрел человек видео с базой, ну что ты ему лишнюю когнитивную нагрузку создаёшь?

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
Карта сайта