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

C++. Auto. Добро или Зло? (14 стр)

Страницы: 110 11 12 13 14 15 Следующая »
#195
20:31, 1 июля 2019

Sbtrn. Devil
> коррупция хипа
Бррр. Это уже политика.


#196
20:40, 1 июля 2019

я вообще в последнее время стал уходить в сторону С-style, достали все эти тормоза из-за удобства написания кода, да вообще, стейт-стайл - вещь

#197
(Правка: 20:55) 20:53, 1 июля 2019

Ой, а давайте превратим эту тему в срач про ревью процесс.
Как проводите, на что смотрите?
Для себя пришел в итоге к такой методике - смотрю что код разбит на достаточно небольшие логические модули с четко определенным интерфейсом + тесты + по возможности документация.
Размер модуля - такой чтобы произвольный человек из команды мог переписать за 1 день, имея требования (в виде тестов и документации).
Что там внутри модуля творится - похер, auto там внутри, auto& или auto&& - вообще насрать, смотрю только у студентов.
Тулзы - github, gitlab, но вообще похер (но gerrit - все равно говно)

#198
(Правка: 2 июля 2019, 0:36) 21:12, 1 июля 2019

Ghost2
> Так в этом и суть сабжа: auto,
> придумано в основном для пейсателей.
как бы да. пейсателей == как бы диктаторы, а читатели == ох-ох, как бы тоже важные элементы :)
а вообще "auto" наверно придумано для того чтобы устранить бессмысленную потерю драгоценных связей в коде между типами и выражениями, не? и про удобно/не_удобно - тогда как бы не волнует :)

Sbtrn. Devil
> И где в данной процедуре было место твоему "наверху"?
ну тот кто всё это в один процесс склеивает и запускает у клиентов/заказчиков - тот и наверху, не?

#199
(Правка: 21:52) 21:51, 1 июля 2019
Kartonagnick
Держись! Я не хочу чтоб тебя снова забанили. Не оставляй меня здесь одного. O_o
#200
21:59, 1 июля 2019
Kartonagnick
> можешь глянуть код того же детектора членов, который ты так любишь.
Какую библиотеку использовал? Tenzorflow? Или Sarcasmflow?
#201
(Правка: 23:40) 23:40, 1 июля 2019

Итак, наблюдая за развитием беседы в теме, я пришел к некоторому решению для себя.
Поубавлю-ка я частоту использования auto на прежний уровень - в основном итераторы и шаблоны. А для переменных буду по возможности указывать тип явно. Завтра сделаю соответствующий коммит.

Всем спасибо. Продолжайте.

#202
0:02, 2 июля 2019

Sbtrn. Devil
> template <class T> void update_T (T &t) { T innerT = t;
Годно. Хотя связи с (X&)& тут всё же не вижу, но на свой вопрос я ответ получил. Спасибо.

Ghost2
> auto a = { max_size };
Ога, ещё вот так можно, без авто:

A* a = nullptr;
A& b = *a;
Или так:
const char* a = "gg wp";
const_cast<char*>(a)[0] = '\0';
#203
(Правка: 1:23) 1:23, 2 июля 2019

Adler

> ох-ох
Твоё ох-ох равно Almost Always Auto... Или не равно?

pahaa

> Ога, ещё вот так можно, без авто
C++ язык безграничных возможностей. Ты уже на пол пути до истины. Впрочем, даже так её стоит формализовать.

> Или так
Это уже совсем порно. Даже для нубов.

#204
(Правка: 3:36) 2:08, 2 июля 2019

Sbtrn. Devil
> Вот такую цену мы заплатили за кодификацию ссылки.
+1, очень крутой пример, можно в отдельную тему вынести.
upd: готово

#205
9:45, 2 июля 2019

Кстати, как вы пишете foreach - с auto или без?

for (const auto &item : items)
или
for (const int &item : items)

#206
11:16, 2 июля 2019

pahaa
> Хотя связи с (X&)& тут всё же не вижу,
Ну, если просто "подставлять настоящие типы вместо имён типов" (как typedef вроде бы и предполагает), то чисто формально при подстановке T = X & в "T &" и получается "(X &)&". По правилам языка - невозможный тип. Но вот таким выражением его выразить можно. Поэтому приходится делать исключение, что чисто в этом случае выражение означает не то, что оно обычно означает. И от этого исключения начинают расползаться во все стороны последствия.

#207
(Правка: 11:42) 11:42, 2 июля 2019

Sbtrn. Devil
Ссылка на ссылку вполне возможный тип (но только на этапе компиляции). Дальше идет схлопывание ссылок

#208
(Правка: 12:49) 12:40, 2 июля 2019

Sbtrn. Devil
> Напрямую - нет, но после небольшого обходного манёвра - уже есть.
Ни при каких маневрах нету. Ссылочный тип это всего лишь алиас на существующий объект какого либо типа. Иными словами нельзя объявить объект ссылочного типа, можно прибить гвоздями новое имя к уже существующему объекту.
http://ideone.com/yJPOpZ

Vlad2001_MFS
> Кстати, как вы пишете foreach - с auto или без?
И та и другая форма записи верна, а значит я могу писать и так и эдак, главное чтобы в пределах одной логической единицы использовалась только строго одна из них.

#209
(Правка: 13:03) 12:48, 2 июля 2019

totoro
> Иными словами нельзя объявить объект ссылочного типа,

struct t_obj{
  int tmp;
  int&&rref=std::move(tmp);// obj_a
  int&lref=tmp;            // obj_b
};
Страницы: 110 11 12 13 14 15 Следующая »
ФлеймФорумПрограммирование