Сообщение Re[17]: Разработка на чистом C от 06.11.2016 9:53
Изменено 06.11.2016 10:22 pagid
Здравствуйте, so5team, Вы писали:
S>Или даже вот в таком.
На С это будет так
Чем на С++ лучше, кроме очевидного RAII, совершенно непонятно. И зачем функции дублируются и как это связано с недостатками С тоже непонятно.
S>Или даже вот в таком.
На С это будет так
int ub_ctx_add_ta(struct ub_ctx* ctx, const char* ta)
{
char* dup = strdup(ta);
if(!dup) return UB_NOMEM;
int res = UB_NOERROR;
lock_basic_lock(&ctx->cfglock);
if(ctx->finalized) res = UB_NOERROR;
else
if(!cfg_strlist_insert(&ctx->env->cfg->trust_anchor_list, dup)) res = UB_AFTERFINAL;
lock_basic_unlock(&ctx->cfglock);
free(dup);
return res;
}Чем на С++ лучше, кроме очевидного RAII, совершенно непонятно. И зачем функции дублируются и как это связано с недостатками С тоже непонятно.
... << RSDN@Home 1.2.0 alpha 5 rev. 1495>>
Re[17]: Разработка на чистом C
Здравствуйте, so5team, Вы писали:
S>Или даже вот в таком.
На С это будет так
Чем на С++ лучше, кроме очевидного RAII, совершенно непонятно. И зачем функции дублируются и как это связано с недостатками С тоже непонятно.
S>Или даже вот в таком.
На С это будет так
int ub_ctx_add_ta(struct ub_ctx* ctx, const char* ta)
{
char* dup = strdup(ta);
if(!dup) return UB_NOMEM;
int res = UB_NOERROR;
lock_basic_lock(&ctx->cfglock);
if(ctx->finalized) res = UB_AFTERFINAL;
else
if(!cfg_strlist_insert(&ctx->env->cfg->trust_anchor_list, dup)) res = UB_NOMEM;
lock_basic_unlock(&ctx->cfglock);
free(dup);
return res;
}Чем на С++ лучше, кроме очевидного RAII, совершенно непонятно. И зачем функции дублируются и как это связано с недостатками С тоже непонятно.