Войти
ФлеймФорумПрограммирование

C++. Auto. Добро или Зло?

Страницы: 1 2 314 15 Следующая »
#0
(Правка: 2:24) 2:23, 28 июня 2019

Используете ли вы автоматическое выведение типов? Насколько часто? В каких случаях предпочитаете явно указывать тип?

В последнее время начал повсеместно использовать автоматические выведение типов. Пока вроде бы нравится, удобно. Стараюсь, чтобы использование auto не ухудшало читаемость и понимаемость кода.


#1
2:47, 28 июня 2019

Добро если использовать только для всяких итераторов.

#2
2:55, 28 июня 2019

MrShoor
А так уже Зло?

auto obj = new Object();
#3
3:02, 28 июня 2019

Vlad2001_MFS
> Используете ли вы автоматическое выведение типов?
использую когда справа виден тип:

auto obj = std::make_shared<Object>();
Потому что зачем тип писать два раза?

А вот в остальных случаях - явно указываю

#4
3:33, 28 июня 2019

Vlad2001_MFS
> А так уже Зло?
Ага

#5
5:29, 28 июня 2019

war_zes
> использую когда справа виден тип:
Плюсую.
Использую auto, только если из контекста понятно, что там будет за тип. Ну и ещё в шаблонах использую, где тип не всегда понятен, и где проще написать auto, чем decltype городить.

#6
5:37, 28 июня 2019

Дело не столько в читаемости, а в том что не все ide могут корректно вывести тип после этого, впрочем для обернутых в шаблоны типы они тоже не всегда могут вывести нормально.

#7
7:51, 28 июня 2019

MrShoor
> Ага
А чем же оно плохо? Тип вроде бы без проблем определяется.

Aroch
Ну я пока с этим не сталкивался. Visual Studio, Visual Studio Code и QtCreator все хорошо определяют.

#8
8:07, 28 июня 2019

Vlad2001_MFS

> А чем же оно плохо

const blob_t& get_blob();

void func()
{
    auto blob = get_blob(); // упс, забыли &, получили копию
}

#9
8:25, 28 июня 2019

Vlad2001_MFS
> А чем же оно плохо? Тип вроде бы без проблем определяется.
А зачем тебе в этом месте auto? Чтобы 2 символа кода сэкономить?  А читается строка с auto хуже. Экономия в наборе двух символов того не стоит.

#10
8:36, 28 июня 2019

Тут пожалуй поддержу Варзиса.

#11
(Правка: 8:48) 8:43, 28 июня 2019

После 4-х лет кодинга на JS пользуюсь только auto.
Брат жив, зависимость есть.

MrShoor
> А читается строка с auto хуже.
Это все бред. Существуют языки с динамической типизацией и там люди почему то без проблем живут без явного указания типов.
А потому получается, что если с auto ничего не понятно то либо код нечитабельное говно и спасает его лишь явное указание типов, либо надо учиться читать.

#12
8:49, 28 июня 2019

Ghost2
Тот же код без auto:

const blob_t& get_blob();

void func()
{
    blob_t blob = get_blob(); // упс, забыли &, получили копию
}
#13
9:36, 28 июня 2019

Panzerschrek[CN]

Разница очевидна.

#14
(Правка: 10:50) 10:37, 28 июня 2019

Great V.
> Существуют языки с динамической типизацией и там люди почему то без проблем
> живут без явного указания типов.
> А потому получается, что если с auto ничего не понятно то либо код
> нечитабельное говно и спасает его лишь явное указание типов, либо надо учиться
> читать.
Ну да. Недавно же выяснили, что функции должны быть по пять строчек. Какой смысл в этих пяти строчках писать тип для двух с половиной локальных переменных - не понятно. Даже auto впадло набивать. Смысл в явном указании типа есть только в сигнатуре функции для входящих параметров и возвращаемого значения. Как в сраном пхп.

Страницы: 1 2 314 15 Следующая »
ФлеймФорумПрограммирование