[/b/] [/d/] [/tu/] [/a/] [/ph/] [/wa/] [/cg/] [/t/] [/p/]

[Burichan] [Foliant] [Futaba] [Greenhell] [Gurochan] [Photon] - [Home] [Manage] [Archive]

Leave these fields empty (spam trap):
Name
Link
Subject
Comment
File [
Verification
Password (for post and file deletion)
  • Supported file types are: GIF, JPG, PDF, PNG
  • Maximum file size allowed is 30720 KB.
  • Images greater than 200x200 pixels will be thumbnailed.

File: 1695503129510.jpg -(254404 B, 1536x1536) Thumbnail displayed, click image for full size.
254404 No.217684   [Reply]

Пердолился сегодня с макросами на Си. Мне нужно внутри тела функции знать ее возвращаемый тип чтоб автоматически сгенерировать его "нулевое" значение. Как я понимаю в сколько-нибудь чистом виде эта задача не решаема. Сейчас объявляю функции так:

fun( Sum, int ) ( int A, int B ) ( return A + B; )

Выглядит терпимо, но хотелось бы чего-то получше. Экспандится ~примерно~ в такое:

int Sum_Return_Value; int Sum ( int A, int B ) { typeof( Sum_Return_Value ) ERROR_Return_Value; return A + B; }

Есть еще макросы для генерации ошибки, которые вайпают ERROR_Return_Value и возвращают его. (Инфа об ошибке пушится в специальный стек.)

11 posts and 3 images omitted. Click Reply to view.
>> No.217701  

https://github.com/Hirrolot/metalang99

>> No.217704  

>>217697
Если ты за деньги пишешь для кого-то код, переход на какой-то другой язык без согласования (которого очевидно не будет т.к. надо всех других пересаживать на какой-то другой язык и всё переписывать, а это затормозит разработку и вообще лишний геморрой) невозможен.

>> No.217705  
File: 1695574739434.jpg -(234090 B, 1045x1097) Thumbnail displayed, click image for full size.
234090

>>217704
тебе кто-то за деньги в продакшен разрешил эту хуиту на макросах городить? не верю.

>> No.217706  
File: 1695575244041.gif -(1291 B, 45x19) Thumbnail displayed, click image for full size.
1291

>>217704
хотя если у вас макросы городят, то реально подкинь на планёрке зиг. самое то up yours.

фапча говорит у мелкоченьского линька?

>> No.217708  

>>217705
Я не ОП вообще, но ничего необычного в нагораживании макросов в продакшене нет. Там даже всякие кодогенерирующие костыли могут встраивать запросто.

>> No.217716  

>>217706

>shed

bikeshedding же

>> No.217734  

>>217696
Несбалансированные скобочки смертный грех, увы. Пока у меня так:

#define fun( C_Type, Name )  static C_Type MY( ERROR_Result );  C_Type Name fun_ARGS
#define fun_ARGS(...) (__VA_ARGS__) { \
typeof( MY( ERROR_Result ) ) ERROR_Result; memset( (void*) &ERROR_Result, 0, sizeof( ERROR_Result ) ); \
fun_BODY
#define fun_BODY(...) \
{__VA_ARGS__} \
}

Нужно будет еще подумать что делать если функция возвращает void. Макросы для работы с ошибками в применении выглядят примерно так:

let F = OK( Open_Frobnicator() );
let Frob_Count = TRY( Frobnicate( F ) );
OK( Frob_Count <= 19, "Too many frobs" ); NO( Frob_Count < 5, "Too few frobs" );
Comment too long. Click here to view the full text.
>> No.217736  
File: 1695666309721.jpg -(193894 B, 800x1000) Thumbnail displayed, click image for full size.
193894

>>217734
ебать ты бесноватый. вызывает уважение. напиши потом что получится.

>> No.217803  

>>217734

>Несбалансированные скобочки смертный грех, увы.

Тогда как тебе такой вариант?

#define F(ret_t,fun_name, ...) \
ret_t fun_name (__VA_ARGS__){static const typeof(ret_t) ERROR_Return_Value; F2

#define F2(...) __VA_ARGS__}

F(int, sum, int a, int b) (return a+b;)

Или тут тоже скобочки не по фэншую?

>> No.217804  

>>217803
Сейчас у меня так:

fun( int,Sum, int A, int B ) return A + B; end

Примерно то же самое. Проблема с передачей тела как аргумента макроса в том что LINE внутри всего тела имеет одно значение (номер линии на которой закрываящая скобка вызова макроса). А я LINE использую для указания места ошибки. Крч сам я пердолиться с этим больше не буду. Спрошу пару человек, на этом все.



File: 1694788242240.jpg -(538060 B, 1166x2000) Thumbnail displayed, click image for full size.
538060 No.217525   [Reply]

Почему при всех призывах экономить воду, в приморских городах никто не заморачивается с подачей морской воды в качестве технической?

16 posts and 2 images omitted. Click Reply to view.
>> No.217597  

>>217544
Ну а в каких бытовых нуждах ты её ещё можешь предложить использовать?
>>217539

>Пластик никак не взаимодействует с солью.

Зато насосы которые будут держать давление в системе из пластика сделать проблематично.
>>217550
Хлорка + поваренная соль + вода = газенваген. Оно то может решить, но не так как хотелось-бы.

>> No.217599  

>>217597

> Ну а в каких бытовых нуждах ты её ещё можешь предложить использовать?

Помыть резиновый коврик в машину.

> Зато насосы которые будут держать давление в системе из пластика сделать проблематично.

Уже давно делают насосы с пластиковыми внутреностями.

> газенваген

Это же хорошо.

>> No.217602  

>>217599
В бытовой вариации это делают на улице со сливом отработанной воды в грунт, что в случае морской - недопустимо.
В промышленной - там типично (кроме совсем кустарных автомоек) циклическая рекуперация моющего состава форсунки-фильтр-восполнение потерь-форсунки, ну и моют всё что вообще мочить можно одним составом ибо так быстрей и дешевле. (ну и как будет взаимодействовать соль с ПАВ, да и металлом кузова и прочих частей автомобилей никто не собирается решать)

>Это же хорошо.

А, ну да. Лол. В тубзик сходил, в реанимацию съездил.

>> No.217603  

>>217602

> В бытовой вариации это делают на улице

Откуда на улице водопровод?

> В тубзик сходил, в реанимацию съездил.

Зачем доводить до таких ядерных концентраций?

>> No.217608  

>>217525
Но я так и не нашёл - а какие профиты это сулит? Экономия пресной воды? Это разве что для пустынных арабов актуально, но они не заморачиваются. Видимо, профитов нет.

>> No.217609  

>>217608

> Экономия пресной воды?

This.

> Это разве что для пустынных арабов актуально

Откуда тогда все эти призывы экономить воду?

>> No.217610  
File: 1695206734970.jpg -(183823 B, 1200x879) Thumbnail displayed, click image for full size.
183823

>>217609

>Откуда тогда все эти призывы экономить воду?

очевидно что бюрократу поще и дешевле попиздеть про экономию воды(и возможно добиться какого-то результата повлияв на поведению потребителей), нежели чем организовать физическую подачу больше воды для растущего города, а все города постоянно растут. в дарвинского результате отбора пиздаболы остаются в системе, а реальные организаторы уволняются. в итоге вся система коллапсирует. прозреваю что нечто подобное уже было во время исторических коллапсов цивилизаций, и что ещё интереснее - прозреваю что аналог этой траектории системы есть в экологических нишах.

>> No.217613  

>>217609

>призывы экономить воду

Давно уже не видел. У нас даже поливальные машины из водопровода набирают.

>> No.217663  

>>217610
Ну не знаю как у вас, там где я регион вообще засушливый и с водой всегда сезонно имеются некоторые проблемы.
Но и то впрочем компании призывов к экономии разворачиваются только когда ситуация с водой начинает обещать стать опасной.
А из реальных попыток применения морской - у нас во время последней крупной суши 15-17го годов были попытки строить опреснители. Но морскую водопроводом качать, уже упоминал, в применении для населения это весомый риск загадить почву в городе. (даже если что-то начинать выдумывать)

>> No.217779  

>>217609
В Калифорнии может и есть призывы, и даже серьёзные штрафы. Но в РФ всё иначе, никакой экономии и даже призывов я не наблюдаю.

В некоторых городах РФ воду из центральной отопительной системы вовсе окрашивают, чтобы жители её не спускали и не мылись ею, лол. Т.е. фактически портят воду. Схема очень стараяя, но ей пользуются до сих пор. https://gorodkirov.ru/news/zelenaya-voda-v-batareyah---kommunalschiki-zaschischayut-otoplenie-20080116-1513/

BTW, у меня счётчиков нет, могу воду лить хоть 24/7. А ты собрался целую новую систему выстраивать, чтобы кто-то унитазы смывал, лол.



Delete Post []
Password
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] Next

[/b/] [/d/] [/tu/] [/a/] [/ph/] [/wa/] [/cg/] [/t/] [/p/]