Информация об изменениях

Сообщение Re[6]: Разработка на чистом C от 06.11.2016 15:23

Изменено 06.11.2016 15:25 Evgeny.Panasyuk

Здравствуйте, kov_serg, Вы писали:

EP>>Отсутствие компилятора это один из немногих случаев где оправданно использование C, по очевидным причинам.

_>Есть еще причина. Т.к. C менее универсальный нежели С++ авторы вынужденые реализовывать конкретику, а не абстракции.
_>Такая деятельность дисциплинирует, требует большей ответственности и усердия от ремеслеников, занимающихся подобным трудом.

То есть программисты тратят свои ресурсы на "усердие" и прочую борьбу с языком.

_>И если нужно понять как что-то работает, то смотреть лучше в C реализации, нежели в C++.

_>Что бы далеко не ходить можно посмотреть реализацию базовых операций с полигонами GPC и boost

Конкретный пример — бинарный поиск:
template<typename I, typename P>
I partition_point_m(I first, I last, P p)
{
    while(first != last)
    {
        I middle = first + (last - first)/2;
        if( p(*middle) )
            last = middle;
        else
            first = middle + 1;
    }
    return last;
}

Покажи аналог на C — вот и сравним где понятнее как "что-то работает"
Re[6]: Разработка на чистом C
Здравствуйте, kov_serg, Вы писали:

EP>>Отсутствие компилятора это один из немногих случаев где оправданно использование C, по очевидным причинам.

_>Есть еще причина. Т.к. C менее универсальный нежели С++ авторы вынужденые реализовывать конкретику, а не абстракции.
_>Такая деятельность дисциплинирует, требует большей ответственности и усердия от ремеслеников, занимающихся подобным трудом.

То есть программисты тратят свои ресурсы на "усердие" и прочую борьбу с языком.

_>И если нужно понять как что-то работает, то смотреть лучше в C реализации, нежели в C++.

_>Что бы далеко не ходить можно посмотреть реализацию базовых операций с полигонами GPC и boost

Конкретный пример — бинарный поиск:
template<typename I, typename P>
I partition_point_m(I first, I last, P p)
{
    while(first != last)
    {
        I middle = first + (last - first)/2;
        if( p(*middle) )
            last = middle;
        else
            first = middle + 1;
    }
    return first;
}

Покажи аналог на C — вот и сравним где понятнее как "что-то работает"