
Michael
01.04.2017
21:32:18
еще опытные чуваки подскажите плз
есть какой-нибудь красивый паттерн для этого
if (subs.find(gf.Filename) == subs.end())
{
subs.emplace(gf.Filename, sub_content());
}
sub_content &sc = subs[gf.Filename];
subs - это std::map

Google

Michael
01.04.2017
21:34:03
в шарпах есть trygetvalue например
а тут что?

Alex Фэils?︙
01.04.2017
21:41:21

Michael
01.04.2017
21:41:51
из други вариантов из доков извлек следующие альтернатив:
- проверять существование count, а не find;
- использоват map::at() и словить эксепшн
а думал такое очевидное не заметил...

Gregory
01.04.2017
21:44:40
оО дефайн

Michael
01.04.2017
21:44:57
а чо в с++ принято использоать в роли макросов?

Alex Фэils?︙
01.04.2017
21:45:31
Шаблоны

Michael
01.04.2017
21:45:41
нет спасибо not worth

Google

Alex Фэils?︙
01.04.2017
21:45:52

Rusteros
01.04.2017
21:45:58
макросы лучше вообще не юзатьб
хе

Michael
01.04.2017
21:46:07
где есть?
ссылку на док плз

Gregory
01.04.2017
21:47:58

/dev
01.04.2017
21:48:06

Michael
01.04.2017
21:48:21
угу, это вещи из компьютерных наук
а не из реального мира
стабильность и сейфовость тоже надо поддерживать не в ущерб трению и комплексити

Gregory
01.04.2017
21:48:51
ой
ой

/dev
01.04.2017
21:49:07
их реального мира, если дебажишь макросы, высока вероятность сесть за нанесение тяжких телесных автору дефайнов

Michael
01.04.2017
21:49:28
но если тебе сейчас нужно дважды повторить длинную неприятную строку которую сложно читать
ты будешь строить тимплейт
или напишешь макрос
или ctrl+c, ctrl+v
выбирай

Alex Фэils?︙
01.04.2017
21:49:42
где есть?
http://en.cppreference.com/mwiki/index.php?title=Special%3ASearch&search=Try_emplace

Google

Alexander
01.04.2017
21:49:45

Michael
01.04.2017
21:50:03
забавно,но тут нет
since C++17
ясн

Alex Фэils?︙
01.04.2017
21:50:34

Michael
01.04.2017
21:50:46

Alexander
01.04.2017
21:51:02
таких строк, которые вы дефанами заменяете

/dev
01.04.2017
21:51:02

Michael
01.04.2017
21:51:14

/dev
01.04.2017
21:51:51
макросы лучше использовать там, где без них совсем никак
compiler-specific, build-specific, __FILE__, __LINE__

Michael
01.04.2017
21:53:04
да понятн
но это тоже из области идеала
мне кажется надо все-таки балансировать время, удобство и правильность
мне даже не кажется, это очевидно, что компромисс нужен

/dev
01.04.2017
21:54:14
использование макроса не по делу — накопление технического долга
для долгоживущих проектов это критично

Michael
01.04.2017
21:54:39
да, конечно, но и непрерывный рефакторинг тоже существует
я за итеративный подход к разработке, да и вообще это модно

Google

Michael
01.04.2017
21:55:14
снимает когнитивную нагрузку хуе-мое это вот все
главное что я идиотский дефайн выше могу рефакторнуть в функцию одним движением пальца и ничто не пострадает...

Маришка
01.04.2017
22:25:25

Gregory
01.04.2017
22:25:30
зачем писать вообще темплейтные функции? мб просто дефайнить? )
(sarcasm)

Маришка
01.04.2017
22:25:34
Мингв
Ойой
Msvc

Taylor
01.04.2017
22:31:50
Алекс, я скучал. Телега роднее ВК.
?

Michael
01.04.2017
22:35:29

Alex Фэils?︙
01.04.2017
22:39:14

Erdni
01.04.2017
22:40:09
ой вэй , 1024 участников пропустили

Taylor
01.04.2017
22:41:09
Тут боты есть?
Бросайте батлера))0)

Alex Фэils?︙
01.04.2017
22:41:55
Есть батлер

Taylor
01.04.2017
22:42:03
Блин вот вы прошляпили :c

Alex Фэils?︙
01.04.2017
22:42:17
Да было уже 1024
Тут оно послелние три дня скачет

Gregory
01.04.2017
22:46:12
ага, давай еще поперегибаем
ну вот опасаюсь не перегибаете ли вы, когда видишь намерение делать макрос который симулирует поведение try_emplace

Michael
01.04.2017
23:03:11

Google

Michael
01.04.2017
23:03:14
что ж поделать!
ввиду невероятно дружелюбной и удобной системы деклараций и дефиниций в языке с++
когда тебе надо что-то у тебя сечйас что-то заработало
ты пишешь макрос, а не пытаешься объявить метод в трех файлах чертыхаясь каждый раз когда надо попроавить сигнатуру
зачем третий файл? да просто так
а для того чтобы это было красиво на следующий день это будет отрефакторено
когда уже вся логика понятна и работает.

/dev
01.04.2017
23:11:20

Michael
01.04.2017
23:11:45
да нет, просто немного другой рабочий процесс
пишешь хуйню - спишь - просыпаешься, пьешь валокордин - рефакторишь. снова пишешь хуйню...
довольно эффективно

/dev
01.04.2017
23:12:49
ну, если релизиться не надо каждую неделю, то можно не писать хуйню, чтоб переделывать

Michael
01.04.2017
23:13:23
когда уже основные паттерны в проекте заложены и понятны тогда и писать хуйню не понадобится