1. C++ / Говнокод #8024

    +167

    1. 1
    2. 2
    for(byte i = 3;i<129;++i)
      (state.programImpl[i])(state);

    Мне достался на поддержку этот проект. Это основной цикл программы, хотя их несколько. Есть некоторый массив, заполненный алгоритмом программыфункциями через

    PI programImpl= {
    beginPrg,
    //...
    };
    В зависимости от выполнения различных условий state.programImpl самомодифицируется во время выполнения этого цикла. Мне хочется сказать: "Возьми Lisp и никогда более не берись за С++!". А вообще, в этом проекте эта самомодификация просто не нужна. А теперь вопрос: "Что у человека с головой?"

    Запостил: Говногость, 29 Сентября 2011

    Комментарии (9) RSS

    • >Что у человека с головой?
      Lispоёбы отебали прямо в голову?
      Ответить
    • Lisp головного мозга?
      Ответить
      • Лисп на c++ был бы так:

        tempalte<typename F, typename NF>
        class FunctionCaller
        {
        F func;
        FN funcnext;
        public:
        FunctionCaller(F f, FN fn) { func = f; funcnext = funcnext; }
        void operator(State& state) { func(state); funcnext(state); }
        }
        
        auto fc(beginPrg, FunctionCaller<anotherFunction, FunctionCaller< ...);
        fc(state);
        Ответить
        • тут нет инструментов для самомодификации кода, в отличии от оригинала.
          Ответить
    • 1. Где здесь С++?
      2. Для какой платформы код? Для контроллеров это может быть вполне применимо, для нормальных пк - да, бред.
      Ответить
    • да, вызов 100+ непонятный функций выглядит немного странновато.
      какие-то специфические требования или просто маразм?
      Ответить

    Добавить комментарий