Войти
ФлеймФорумПрограммирование

А почему бы не попробовать Сишечку? (4 стр)

Страницы: 13 4 5 638 Следующая »
#45
15:22, 3 мая 2021

nes
не, ты нежизненный тест написал. давай я тебе жизненный напишу:

NoThrowFuncRes no_throw_func(int &actual_res)
{
  float res;
  auto err_code = validate(res);
  if(err_code == ValidateRes::ReallyBad || err_code == ValidateRes::EvenWorse)
  {
    return NoThrowFuncRes::EndOfTheWorld;
  }
  if(err_code == ValidateRes::BadButStillRecoverable || err_code == ValidateRes::NotEvenThatBad)
  {
    actual_res = do_work(0);
    return NoThrowFuncRes::SortaSuccess;
  }
  if(err_code == ValidateRes::Success || err_code == ValidateRes::AlmostSuccess)
  {
    actual_res = do_work(res);
    return NoThrowFuncRes::Success;
  }
  assert(0); //we arent supposed to ever get here
  return NoThworFuncRes::WTF;
}
и у вот этого кода сравни ассемблерный выхлоп с кодом без кодов ошибок, в котором эксепшоны на верхнем уровне ловятся.

#46
15:26, 3 мая 2021

Suslik
> е, ты нежизненный тест написал. давай я тебе жизненный напишу:

это сарказм или как?

#47
15:47, 3 мая 2021

Suslik
Да, у меня вот тоже недоумение. Как вообще будет выглядеть "верхний уровень", который бы эквивалентно обработал ValidateRes::BadButStillRecoverable и ValidateRes::NotEvenThatBad?

#48
15:56, 3 мая 2021

Panzerschrek[CN]
> Короче, нынче нету ни одной причины писать на голом Си. На голом Си сейчас
> пишут или уж совсем упоротые ретрограды, или мазохисты, или недоучки.

Си на первом месте:

+ Показать

Это версия РБК.
Только вчера засел за Си-тренажёр, нашёл такой на stepik.org.

#49
16:04, 3 мая 2021

papa_Lev
> Си на первом месте:
> + Показать
>
> Это версия РБК.
Первом месте по чему? По частоте использования? По размеру кодовой базы в эксплуатации? По занятости? По вакансиям? По зарплатам?

#50
17:01, 3 мая 2021

Panzerschrek[CN]
успокойся, ты реально забадал

#51
3:32, 5 мая 2021

Suslik
> а shared_ptr — это моветон, для него применений крайне мало.
Как разруливаешь ситуации, когда нужно владение ресурсом раздать нескольким объектам.

#52
(Правка: 5:12) 5:12, 5 мая 2021

MrShoor
> Как разруливаешь ситуации, когда нужно владение ресурсом раздать нескольким объектам
именно такие ситуации являются корнем проблемы, потому что в идеале их быть не должно. приведи пример, где ты считаешь такую ситуацию неизбежной.

#53
8:41, 5 мая 2021

Suslik
> именно такие ситуации являются корнем проблемы, потому что в идеале их быть не
> должно. приведи пример, где ты считаешь такую ситуацию неизбежной.
>

банальный менеджер ресурсов - текстурный например или материалов

#54
(Правка: 8:52) 8:49, 5 мая 2021

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

#55
9:00, 5 мая 2021

Suslik
> например, если на материал фаерболла не ссылается никто в текущем кадре, это
> не значит, что его нужно выгружать, так как его снова могут скастить на
> следующем кадре.

уже больше 10 лет обсуждается тема

#56
9:02, 5 мая 2021

Suslik
В памяти нужно держать ровно столько ресурсов, сколько нужно,
на экране рисовать нужно только то, что попадает в поле видимости камеры
и т.д.
Какое-то масло масляное, все это понимают, но мы то знаем, что ничего бесплатного не бывает
и то, что кажется красивым на словах, в жизни бывает сложно или невозможно реализовать.

#57
(Правка: 9:08) 9:07, 5 мая 2021

innuendo
> уже больше 10 лет обсуждается тема
я не знаю, что тут 10 лет обсуждать, потому что ответ совершенно очевиден: ресурсы не могут сами за себя решать, когда им загружаться и выгружаться и, тем более, как это делать.

nes
> и то, что кажется красивым на словах, в жизни бывает сложно или невозможно реализовать
вот именно это относится к shared_ptr — то, что кажется на первый взгляд логичным и практичным инструментом, на самом деле не находит ни одного удачного применения.

#58
9:30, 5 мая 2021

Suslik
> ресурсы не могут сами за себя решать, когда им загружаться и выгружаться и,
> тем более, как это делать.

не ресурсы решают, а логика rc

> на самом деле не находит ни одного удачного применения.

категорично не согласен

#59
9:45, 5 мая 2021

0iStalker
>
> Выделяешь текст, который нужно указать стрелочкой, - нажимаешь "  рядом с
> номером поста, в котором выделил текст

Спасибо.))))

Страницы: 13 4 5 638 Следующая »
ФлеймФорумПрограммирование