Size: a a a

2020 July 16

VK

Valentin Kornienko in Embedded Group
что-то вроде boost::outcome, только проще
источник

СС

Сиие Сууие in Embedded Group
Valentin Kornienko
Там в С++ скоро подвезут условно-бесплатные исключения
Ретурн (-1)
источник

MP

Max Payne in Embedded Group
Vyacheslav Olkhovchenkov
а что инструменты? тебе надо писать. инструменты тут сбоку
я не Раст-фанатик, но давай я самый простой примерчик приведу (таких еще штук 5-6 разной сложности можно накидать):

в Си:

int rc = foo();
if (rc != 0) {
  return rc;
}

rc = bar();
// ...

в Раст:

foo()?;

bar()?;
источник

MP

Max Payne in Embedded Group
+ есть всякие там unwrap(), варнинги/эрроры, если не забыл проверить ошибку и прочее барахло, помогающее быстрее разделаться с такими штуками
источник

СС

Сиие Сууие in Embedded Group
Max Payne
я не Раст-фанатик, но давай я самый простой примерчик приведу (таких еще штук 5-6 разной сложности можно накидать):

в Си:

int rc = foo();
if (rc != 0) {
  return rc;
}

rc = bar();
// ...

в Раст:

foo()?;

bar()?;
0.о? ()()?о.0?
источник

VO

Vyacheslav Olkhovche... in Embedded Group
#define RC(x) {int rc=x; if(rc) return rc;}
RC(foo());
источник

СС

Сиие Сууие in Embedded Group
Vyacheslav Olkhovchenkov
#define RC(x) {int rc=x; if(rc) return rc;}
RC(foo());
If(foo()==err){
Doerr()
}
источник

MP

Max Payne in Embedded Group
Vyacheslav Olkhovchenkov
#define RC(x) {int rc=x; if(rc) return rc;}
RC(foo());
а логи там куда крутить? а контексты ошибок как передавать? а что, если мне надо дифференцировать ошибки?
такое себе удовольствие городить заборы из #define
источник

СС

Сиие Сууие in Embedded Group
Vyacheslav Olkhovchenkov
#define RC(x) {int rc=x; if(rc) return rc;}
RC(foo());
Нахрена дефайн? Буквы платные?
источник

E

Evgen in Embedded Group
Max Payne
я не Раст-фанатик, но давай я самый простой примерчик приведу (таких еще штук 5-6 разной сложности можно накидать):

в Си:

int rc = foo();
if (rc != 0) {
  return rc;
}

rc = bar();
// ...

в Раст:

foo()?;

bar()?;
У Раста комьюнити крайне мало
Вот ибстись весело с малой группой поддержки
источник

MP

Max Payne in Embedded Group
Evgen
У Раста комьюнити крайне мало
Вот ибстись весело с малой группой поддержки
я ж не говорю что-то другое. просто сказал, что интересные моменты в нем есть
источник

VO

Vyacheslav Olkhovche... in Embedded Group
Max Payne
а логи там куда крутить? а контексты ошибок как передавать? а что, если мне надо дифференцировать ошибки?
такое себе удовольствие городить заборы из #define
у тебя в примере были какие-то логи? контексты? нет? свободен.
источник

VO

Vyacheslav Olkhovche... in Embedded Group
Сиие Сууие
Нахрена дефайн? Буквы платные?
да, нам же показыли пример с платными буквами.
источник

E

Evgen in Embedded Group
Max Payne
я ж не говорю что-то другое. просто сказал, что интересные моменты в нем есть
в целом оно поиграться, он, может, и очень удобен. Но когда сам со всем разбираешься это тяжко)
источник

MP

Max Payne in Embedded Group
Vyacheslav Olkhovchenkov
у тебя в примере были какие-то логи? контексты? нет? свободен.
я пример привел простой, и далее написал "таких еще штук 5-6 разной сложности можно накидать"

чем сложнее будет пример, тем больше будет граблей, которые надо будет пилить на Си, что бы с ошибками разобраться
источник

СС

Сиие Сууие in Embedded Group
Max Payne
а логи там куда крутить? а контексты ошибок как передавать? а что, если мне надо дифференцировать ошибки?
такое себе удовольствие городить заборы из #define
На beckIPC неплохие свои обертки в виде
foo(int arg, int arg2, int errcode)
источник

MP

Max Payne in Embedded Group
а с goto err_fopen я вообще молчу - сплошь и рядом забывают что-то потом деаллоцировать или закрыть
источник

VO

Vyacheslav Olkhovche... in Embedded Group
чем сложнее будет пример, тем меньше там будет возможностей что-то сократить на расте.
источник

СС

Сиие Сууие in Embedded Group
Max Payne
а с goto err_fopen я вообще молчу - сплошь и рядом забывают что-то потом деаллоцировать или закрыть
Goto
Сейчас набегут
источник

VO

Vyacheslav Olkhovche... in Embedded Group
в первую очередь разборка с ошибками -- это правильное приведение всего в исходное состояние. и нихера оно оавтомагически не делается.
источник