Cinder
макросы сами не отладятся
Andrew
ну, ок. Но ведь есть же libmath. Хотя, да, не всегда есть возможность притащить в проект
Cinder
Владислав, _Generic тебе в помошь
Vladislav
у макроса для min, впрочем, свои неустранимые проблемы
Andrew
но у вас тоже достаточно синтетический кейс
Cinder
макрос там будет тонкой прослойкой
Andrew
я вот постоянно вижу более тривиальное использование
Vladislav
Cinder
вообще странно не смотря на то что у нас схх тред а не сpp - сишники не врываются и не защищают свой сишный мир
Cinder
1
ovf
а зачем _generic для min?
ovf
а от кого его защищать? :-)
ovf
ему что-то угрожает?
Vladislav
сишников очень мало
хаскеллистов еще меньше
Andrew
голактеко опасносте
Cinder
вообще да, большинство сионистов считают, что все крестовики вынуждены страдать
Cinder
я не смог доказать ни одному сишнику, что на самом деле страдают сионисты, а не крестушки
Vladislav
а зачем _generic для min?
предлагаешь для каждого типа перегружать вручную?
Cinder
ладно, одному смог
ovf
_generic это и есть вручную
Andrew
ок, давайте я ещё наброшу
ovf
а автоматически -- это без _generic
Cinder
min, minf, mini,minl
Cinder
да, доставай вентилятор
Andrew
min(0.5, 0.7)
вот поэтому там и строгая нотация int — компилятор не даст писать double там, где этого делать нельзя. Не то, что там всякие макросы, где что хуйнёшь то и выполнится.
Andrew
мы всё таки работает со строго типизированным языком, а не с явоскриптами там всякими
Andrew
я бы хотел универсальный min, можно?
шаблонные функции к вашим услугам
Vladislav
обобщения не нарушают строгую типизацию, просто в сишечке с ними туго
ovf
min, minf, mini,minl
а что это за набор функций?
Cinder
> c > шваблонные функции
Cinder
а что это за набор функций?
типа перегрузка, типа очень вручную
ovf
забавно, что ты называешь обобщением систему для генерации кода из шаблона с подстановкой типов
ovf
я бы наоборот назвал это обчащением
Cinder
и не только типов
ovf
тем хуже
Andrew
знаете, что раздражает в сишных прогах
Andrew
когда они падают и вы открываете корку в gdb, вы не видите что стало с макросами
Andrew
вернее, вы видите что стало после них
ovf
стало с макросами?
ovf
а?
Andrew
да, хуёво сказал
Cinder
си:
Cinder
https://github.com/guillermocalvo/exceptions4c
Cinder
довольно впечатляет
ovf
и тем не менее
ну на min (и ещё пожалуй qsort) шаблоны, конечно, можно попробовать продавать
Cinder
так что сетджмп хорошо
ovf
когда они падают и вы открываете корку в gdb, вы не видите что стало с макросами
а ты, кстати, собрал с достаточным уровнем дебага, чтобы в dwarf попали описания макросов?
ovf
я в gdb могу, например, делать p <макрос> и т.д.
Cinder
они туда не попадают. у меня плохо с сарказмом
Vladislav
https://github.com/guillermocalvo/exceptions4c
https://www.youtube.com/watch?v=XX1Ccp0AQ80
Vladislav
ну на min (и ещё пожалуй qsort) шаблоны, конечно, можно попробовать продавать
а еще структуры данных, умные указатели и множество других полезных вещей
Andrew
я в gdb могу, например, делать p <макрос> и т.д.
да, при наличии исходников всё можно. Троллинг не удался
ovf
нет, при чём тут исходники?
ovf
gdb не понимает их
Cinder
как вы относитесь к линкью? кто вообще юзал либу ниже?
Cinder
https://github.com/drbasic/CppLinq/blob/master/Src/testCppLinq.cpp#L116
Vladislav
как вы относитесь к линкью? кто вообще юзал либу ниже?
у нас вот такое: https://github.com/facebook/folly/tree/master/folly/gen
Andrew
gdb не понимает их
на самом деле понимает. Я правда не уверен, содержат ли информацию о макрсах отладочные символы
ovf
содержат
Andrew
помоему в формате сиволов gdb они как раз таки и есть
ovf
gdb понимает исходники на уровне деления на строки по \n
Cinder
зачем это? когда есть бустрендж?
Cinder
но таки field мне оттуда понравился
Vladislav
linq же
Andrew
с -g3 компиляй
так и делаю. Ещё -ggdb3
Vladislav
бустрендж далеко не все умеет
Andrew
а таки что такое бустрендж?
Vladislav
а таки что такое бустрендж?
http://www.boost.org/doc/libs/1_62_0/libs/range/doc/html/index.html
Vladislav
есть еще аналогичная http://jscheiny.github.io/Streams/
Andrew
аа, ясно-понятно
Detur
тоже ничего