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

    +163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    void SomeMethod(void) {
      const int a, b;
     // ...
      struct {
        const int a, &b;
        lambda(const int a, const int &b) : a(a), b(b) {}
        // весь огород ради operator()
        const int operator()(const int x) { return SomeCalculation(a, b, x); }
      } lambda(a, b);
     //... 
      someContainer.SomeGroupOperation(lambda);
      a++; b++;
      someContainer.SomeGroupOperation(lambda);
    //  ...
    };

    Быстрее бы мы перевели все проекты в нашем отделе под новый стандарт С++0х, а то огородная реализация лямбд по всему проекту уже надоела.

    Запостил: Говногость, 16 Июня 2010

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

    • блять... вот это говно, плачу кровавыми слезами...
      Ответить
      • главное, что не срёшь кровавыми катышками
        Ответить
        • это хуже? просто я пока неопытный, а совет от старшего товарища-анального акробата порой ценен...
          Ответить
        • согласен
          Ответить
    • Сейчас придёт PUSHkoff и скажет, что это верх красоты С++.
      Ответить
      • pushkoff:
        именно так мой анонимный дружок!...
        когда я увидел этот код, я буквально кончил от удовольствия...

        зы сорри, разлогинился... кстати, красавчик оставь телефончик... погуляем, потусим...
        Ответить
        • Я блондинка и с такими не гуляю. Что-бы вас утешить могу купить пони.
          Ответить
    • В коде не хватает шаблонов и прочих шлюх.
      Ответить
    • void SomeMethod(void) {
        const int a, b;
       // ...
      template<typename TVariable1Type, typename TVariable2Type, typename TParameterType, typename TResultType>
        struct {
          const TVariable1Type a;
          const TVariable2Type &b;
          lambda(const TVariable1Type a, const TVariable2Type &b) : a(a), b(b) {}
          // весь огород ради operator()
          const TResultType operator()(const TParameterType x) { return SomeCalculation(a, b, x); }
        } lambda<int, int, int, int >(a, b);
       //... 
        someContainer.SomeGroupOperation(lambda);
        a++; b++;
        someContainer.SomeGroupOperation(lambda);
      //  ...
      };
      Ответить
      • MORE шаблонов и шлюх!!
        Ответить
      • pushkoff, залогинтесь. Мы знаем, что это вы. Вы же любите много писать? Чем больше кода, тем больше платят? Индус?
        Ответить
      • C++ - язык типа, заработай: геморой, слобоумие, артроз кистей рук и сломаную клавиатуру.
        Ответить
      • Это чё? Лямбда на С++? От одной такой можно умереть, а если таких целый проект...
        Ответить
        • Смотрите. У Пушкофа сработали обезьяние инстинкты. Кликательный рефлекс. Он начал минусовать.
          Ответить
    • const int a, &b;

      В этой строке проблема. Если инициализировать лямбду ссылкой на локальную переменную и вернуть лямбду из функции, то компилятор ничего не скажет и всё скомпилируется и запустится, а ссылка b будет указывать на мусор в стеке.
      Ответить
      • Первый адекватный коммент на этой странице. Что интересно, от анонма.
        Ответить
    • меня радует это
      const int a, b;
      после чего идет это
      a++; b++;

      и даже если бы это работало, то параметр а при вызове второй лямбды не поменялся бы..

      код не верх красоты, но решает поставленные задачи...

      к стати при таком методе вызова лямбд, вызов operator () будет инлайном, то есть о производительности, кто-то подумал заранее...

      по моему при использовании лямбд, ее вызов станет виртуальным, что просадит производительность...

      З.Ы. все размышления исходили из того что функция SomeGroupOperation() является темплейтом, принимающей тип который умеет делать operator(const int )...
      Ответить
      • С++ уделает всех? :D
        Ответить
      • Что мне нравится в этом парне, это то, что он оптимист. Всегда видет много хорошего в куче говна.
        Ответить
      • >меня радует это
        Запомните его фразу на века. Его радует всё в языке программирования, если этот язык - С++!
        Ответить
        • если ты не заметил, то там пытаются менять константные данные...
          Ответить
          • Ты это сто раз повторишь?
            Ответить
          • Ты думаешь С++0х лямбда (корявая, но лучше этой) не поддерживает константные данные? Или не осилил С++0х?
            Ответить
            • причем тут константные данные?
              Ответить
              • >pushkoff: если ты не заметил, то там пытаются менять константные данные...
                >pushkoff: причем тут константные данные?
                ты о них первый заговорил, вообще то. Уже забыл? С++ высушивает мозг. Симптомы начали проявляться.
                Ответить
                • 100%
                  Ответить
                • константные данные меняются не в лямбдах, в С++ нельзя менять константные данные...
                  Ответить
                  • У вас Шизофазия?
                    Загуглить диагноз, думаю, пока ещё сможите. С++ пока пощадил обезьянии области мозга. Но скоро и их схавает.
                    Ответить
                    • я написал (а афтар подтвердил) что данная строка
                      a++; b++;
                      является ошибочной, так как а и b являются константами...
                      можешь взять свой банан... не забудь почистить...
                      Ответить
                      • Вы где-то в своих мечтах плаваете.

                        Вердикт: Лечению не подлежит. и подпись.
                        Ответить
      • >код не верх красоты, но решает поставленные задачи.
        А если поставленую задачу можно решить легче, то зачем С++ говно?
        Ответить
        • может для того чтобы решить ее быстрее?
          Ответить
          • Тогда, может стоит использовать ассемблер?
            Ответить
            • С++ дает практически те же возможности (хотя в последний раз программиста писавшего код на ассемблере, который обойдет код на С++ я видел в 2005)...
              Ответить
              • С++ даёт.
                А ты берёшь?
                Много в рот.
                Потом срешь.
                Ответить
              • > (хотя в последний раз программиста писавшего код на ассемблере, который обойдет код на С++ я видел в 2005)

                есть поучительная история. в ядре линукса был код-модуль, полный ассемблерных вставок. пришёл линус торвальдс, всё удалил и заменил собственным кодом на обычном си. код стал быстрее (и портабельнее, что немаловажно).

                можно было бы подумать, что си быстрее ассемблера (ужас, какой бред говорю, но я же в беседе с пушковым). нет, просто линукс проф, а тот кто писал ассемблерные вставки - лох. вот и вся мораль. кто же в этой истории лох - дам подумать читателям.
                Ответить
                • кстати, это было то ли в этом, то ли в прошлом году, так что про 2005 год - это от недостатка опыта
                  Ответить
                  • как ни крути, а человек будет писать код понятный для себя... уже с десяток лет, процессоры умеют внеочередное выполнение, префетч памяти, предсказание переходов, несколько команд за такт (спаривание) и кучи других фишек, используя которые можно сделать код абсолютно не читаемым, но очень понятным процессору... компилятор может это все учесть... я не спорю, что компилятор не сделает из О(n) - O(1), но при абсолютно одинаковых реализациях задачи (различия только в языке), компилятор с хорошим оптимизатором и интринсиками порвет 99.9% хороших ассемблерщиков...
                    Ответить
                    • в ядре линукса делаются кучи очень тонких вещей, всякие биты-шмиты, в этом плане си мало умеет оптимизировать, кажется. если правильно помню, код линуса сплошь со стоял из хаковых макросов
                      Ответить
                      • >>в ядре линукса делаются кучи очень тонких вещей, всякие биты-шмиты

                        PHPшники призерали сишников, и презрительно говорили что они работают с "битами-шмитами"
                        Ответить
                      • с тех пор когда линус писал код прошло 19 лет... компиляторы сильно поменялись за это время...
                        я не смотрел как оптимизатор переваривает операции с битами, так как они довольно редкие, ну а на крайний случай есть интринсики, которые нравятся компилятору больше чем ассемблерные вставки...
                        Ответить
                • >>можно было бы подумать, что си быстрее ассемблера
                  Сладкое яблоко круглее кислого.
                  Как язык может быть "быстрее"?

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

                  Сейчас не 88й год, когда процы были по-проще, а компиляторы по-тупее.
                  Мне кажется это настолько очевидно, что надо быть вебкилом, что бы этого не понимать
                  Ответить
                  • >>можно было бы подумать, что си быстрее ассемблера
                    >Сладкое яблоко круглее кислого.
                    >Как язык может быть "быстрее"?

                    Ассемблер это и не язык, а машинные коды в красивом фантике. Поэтому ассемблер per se всегда быстрее си (или равен ему). Возможные тормоза зависят только от человека. Я это и сказал внизу обсуждаемого коммментария.
                    Ответить
                    • >>Ассемблер это и не язык, а машинные коды в красивом фантике
                      Прихали! Ассмеблер -- не язык. Определение ЯП дать, или сам найдешь?
                      Ответить
      • >при таком методе вызова лямбд, вызов operator () будет инлайном, то есть о производительности, кто-то подумал
        На спичках экономите?
        Ответить
        • Простите, а разве эта лишняя производительность не нахаляву достаётся?
          Ответить
          • нет, нужно будет ковыряться в сложных конструкциях, темплейтах и тому подобных фичах С++, которые не осилило большинство обсирающих...
            если хочется чтоб все было просто, лучше писать на ПХП...
            Ответить
            • и где там нужно будет ковыряться?
              Ответить
              • ну топикастер привел код.
                по сути этот код выполняет следующее

                for(auto it = someContainer.begin(); it != someContainer.end(); ++it )
                {
                SomeCalculation(a, b, (*it));
                }

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

                и получилось
                template< class Lambda >
                void SomeGroupOperation(Lambda& lambda)
                {
                for(auto it = begin(); it != end(); ++it )
                {
                lambda(*it);
                }
                }

                теперь середину цикла топикастер засовывает в особый класс, и люди которые продолжают заниматься контейнером уже не парятся с кодом пользователей мидлвари, они просто меняют 1 функцию перебора, ну и пользователям мидлвари пофиг как устроен контейнер...
                Ответить
                • >по сути этот код выполняет следующее
                  >for(auto it = someContainer.begin(); it != someContainer.end(); ++it )
                  Чё реально? Пошёл есть банан. :(
                  Ответить
                • +1
                  Ответить
            • Как сказал один мой препод одному моему одногруппнику: "Хорошо, что умеешь писать на ПХП. Плохо что на ПХП.
              Ответить
      • >На спичках экономите?
        Ага. В ущерб читаймости и лёгкости написания.
        Ответить
      • >по моему при использовании лямбд, ее вызов станет виртуальным
        Ты хотьбы про лябды почитал и не позорился. Не можешь читать, дак хоть код компилятора бы дизасемблировал. Или вас ещё этому не учили?
        Ответить
        • еще не учили...
          Ответить
          • Мне нравится, как вы холодно отвечаете. Вы само смирение? Вот если будду ударить дважды, то и он разозлится. А вы похоже нет? Видимо только такой человек с железными пулинепробиваемыми нервами может быть С++ником.
            Ответить
            • показать все, что скрытоЭто не железные нервы -- это психология опущенных с раздолбанным анусом...
              Ответить
            • я люблю холивары... и как холиварщик с опытом, скажу что спокойствие сильно раздражает оппонентов, что не дает им остановиться...
              одно не радует, оппонентов не стесняющихся своего мнения становится все меньше, а гестов все больше...
              респект и уважуха xXx_totalWar - один из немногих, кто отстаивая свою точку зрения, не ушел в гесты...
              Ответить
      • >все размышления исходили из того что функция
        Вы любите читать между строк? Вы телепат?
        Ответить
      • >меня радует это
        >const int a, b;
        Вам нужно завести девушку и тогда вас будет радовать другое. Не дают? Или не хочется? Не хочется, потому что с С++ секса хватает по самое не могу, да он ещё потом насильно отимеет, а потом добавит.
        Ответить
      • >>меня радует это
        >>const int a, b;
        >>после чего идет это
        >>a++; b++;
        Ой. Извиняюсь. Дома проекты не держу. Все на работе. Вспоминал по памяти. :)
        Ответить
    • к стати, под гестом я не пишу... я знаю что я всегда прав, а когда не прав - не стесняюсь этого...
      Ответить
      • >я знаю что я всегда прав
        ЧСВ? ФГМ? СПГС?
        Ответить
      • >не стесняюсь этого...
        Все пидоры так говорят.
        Ответить
      • Мы вас видели чуть выше в этом треде. Не стесняйтесь.

        >не стесняюсь
        Только что вы говорили, что не стесняетесь? Ну вот уже врёте...
        Ответить
        • Судя по числу плюсов за анонимные школопосты, у тебя 2 виртуала?
          Ответить
          • Ты меня недооцениваешь. У меня их много, только не от одного пароль не помню.
            Ответить
            • > У меня их много, только не от одного пароль не помню.
              > только не от одного пароль не помню
              > не от одного
              Ответить
              • Вот представляю, тебя TarasB, как ты схватился за животик, у тебя круглые глаза, ты показываешь пальцем и приговариваешь: "Это же ошибка, человек описался!".
                Ты синтаксических ошибок, что ли, никогда не видел?
                Сам, небось, компилируешь свой код, а тебе компилятор плюёт в лицо: "syntax error!"
                Смотри, когда ты ошибёшься, я буду рядом.
                Ответить
          • Прочитал как «школохост», а, может, «шхолокост»...

            Вы все тут в этом треде такие умные. Пойду съем банан:(
            Ответить
            • Самый умный человек в этом треде, между прочим.
              Ответить
            • Пока все подрывают своё здоровье, сидя на говнокоде, учавствуя в холиварах, зарабатывая скалиоз, нервничая и облучаясь - он получает полезные микроэлименты и витамины.
              Ответить
      • 2pushkoff:
        Конечно, не все здесь писал я... Тяжёлый рабочий день... Но ты это, Извини. :)
        Ответить
      • >я знаю что я всегда прав
        Ещё Платон говорил: "Я знаю, что ничего не знаю". Вы высокомерны.
        Ответить
        • вы вырвали фразу из контекста... там было продолжение...
          Ответить
          • Ага. Там дальше были перечислены исключения: Pushkoff, WebKill, cfDev, xХx_totalWar и guest.
            Ответить
            • А эти исключения можно перехватить и обработать? :)
              Ответить
    • Кто блдяь гонит на мой с++, обезьянки? Это мега язык, а вы его недостойны. Не смогли понять пару строк, бля
      Ответить
      • Ты бы поменьше орал, воняет уже. Только нищеброды вопят про сложность С++, настоящие программисты давно просекли его истинную говняную сущность.
        Ответить
    • Даже интересно становится, почему тут так много ненавистников C/C++, если учитывать что это стандарт впринципе - то это как минимум странно.
      Ответить
      • Стандарт... Да-да, но только для быдла, не осилившего ничего другого.
        Ответить
        • обычно быдло неосиливает С++, поэтому всякие конторы пишут для них язычки попроще... кто-то пехапе для тебя написал, чтоб ты не чувствовал себя макакой...
          Ответить
          • > обычно быдло неосиливает С++, поэтому всякие конторы пишут для них язычки попроще...

            а что хорошего в "сложных" языках? (с++ сложен сугубо синтаксически - есть чем гордиться) похоже на садомазо - устроим себе сложности на свои жопы! впрочем, я вижу один профит: ботанья возможность померяться письками: я вызубрил необоснованно сложную в ненужных местах и ограниченную в нужных местах систему, а ты, лошара, нет!!

            вообще же сложны должны быть не языки, а алгоритмы. но ты постоянно пиздишь именно о языках, что выдаёт в тебе... хм... эм... Мысль оборвалась.
            Ответить
            • Вообще-то лет 20 как люди поняли прелести объектно-ориентированного подхода для решения крупных задач. Gang of four пишет про паттерны, Фаулер пишет про рефакторинг, и только вебкиллы пишут свой спагетти-код и с понтом говорят "зачем нам эти ваши С++"?
              Ответить
              • Банды четырех геев, Фаллосер.. Кого только нет в этом С++....
                Паттерны нихуя не панацея, а рафакторинг -- нахер он нужен, если изначально проектировать не жопой, а мозгом? Понапишут спагетти код на своем С++, и сидят, дрочат, рефакторят.
                Идите Кнута читайте, он куда полезней четырех геев.
                Ответить
                • согласен рефакторят когда не знают чо пишут.
                  а паттерны которые они описывают... это прямо четыре капитана очевидности
                  Ответить
                • да-да... тут когда-то бывал cfdev который вместо асерта любил проверить все 7 раз...
                  давайте посмотрим правде в глаза, как не проектируй и не продумывай, всеравно будет что-то не так... а если вы считаете себя уникальным, то сверху есть кнопка "наговнокодить", специально для вашего идеального кода...
                  Ответить
            • И это говорит полотёр? PHP тебе хватит сполна для отдыха после работы.
              Ответить
            • я уже около 4 лет учавствую в холиварах о С++ (до этого я гнал на него так же как и большинство, так как считал что С+Asm круче всех) и единственный аргумент который универсален во все времена это то что С++ слишком сложен для обычных обезъян...
              ну а профит в том, что при умелом использовании получаешь фактически высокоуровневый ассемблер...

              алгоритм может быть сложным только до момента его реализации, если реализация алгоритма сложна, то это говнокод...
              Ответить
              • Плюс плюсов именно в универсальности.
                С одной стороны у тебя ООП, перегрузка операторов и прочие мощные средства построения логичного, читаемого кода бизнес-области.
                С другой стороны ты можешь спуститься до API операционки (который обычно бывает на C) и общаться с ним напрямую.

                Но достаточно посмотреть на любой проект вебкилла на его сайте, что бы понять что красота когда -- это не про него.
                Если вся программа состоит из функции "doAll" -- то C++ и правда не нужен.
                Ответить
                • > С одной стороны у тебя ООП, перегрузка операторов и прочие мощные средства построения логичного, читаемого кода бизнес-области.

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

                  > С другой стороны ты можешь спуститься до API операционки (который обычно бывает на C) и общаться с ним напрямую.

                  о бингдингах слышал? ничего в них сверхъественного нет

                  > Но достаточно посмотреть на любой проект вебкилла на его сайте, что бы понять что красота когда -- это не про него.

                  да пошёл ты!
                  Ответить
                  • > в остальных областях он сливает.
                    ты зайди на LinkedIn и посмотри в каких областях там предлагают работу за границей... будешь сильно удивлен...
                    Ответить
                    • http://langpop.com/

                      смотри и удивляйся
                      даже с уделывает твой с++ по многим параметрам
                      Ответить
                      • да, по всем кроме производительности...
                        с какого места там ФЯ идут? я так понимаю их нет в первой десятке?
                        Ответить
                        • напомнить о 95%? :)
                          Ответить
                          • 95% программистов не осилили С++ и ты в их числе...
                            Ответить
                            • > является 3 по популярности языком программирования

                              > 95% программистов не осилили С++ и ты в их числе...

                              взаимоисключающие параграфы, однако
                              Ответить
                              • Ну, а есл что-то вроде:
                                PHP- 85%
                                Java - 6%
                                C++ - 5%
                                Все остальные - 4%

                                Налицо третий по популярности и 95% не осиливших.

                                :) Просто в свое время должность у меня была адвокат дьявола.
                                Ответить
                  • >перегрузка операторов например - это самый сахарный сахар
                    Я на тебя бы хотел бы посмотреть, каак ты бы стал записывать математику, типа матриц 10 на 10 без операторов. Ты заолбаешься Писать V.Multiply(M);
                    V=V*M или V*=M; куда проще.
                    Ответить
                    • Я так и думал, что первым же примером будет матрицы. Потому что видимо перегрузка операторов только для них и нужна. Как какой апологет перегрузки появляется - сразу про матрицы пиздит. Как со списанной торбой
                      Ответить
                      • Ну естественно, бля, перегрузка математических операторов нужна только для математики. Для остального её гораздо реже можно применить. Но видишь ли какая штука: реальная жизнь содержит больше математики, чем тебе кажется.
                        Ответить
                        • > Но видишь ли какая штука: реальная жизнь содержит больше математики, чем тебе кажется.

                          это утверждение верно, толлько оно не отменяет того факта, что матрицы нахрен не нужны. я например везде вижу деревья, но отнюдь не матрицы (разве что в опенгл гыгык).
                          Ответить
                          • >я например везде вижу деревья
                            Галюцинации?
                            Ответить
                          • Умножение вектора на дерево. Вы безподобны.
                            Ответить
                          • Не сочтите за наезд, но напомнило Ваше "везде вижу деревья":)

                            http://www.sciencedirect.com/science?_ob=ArticleURL&_udi=B6WSS-4PYY823-J&_user=10&_coverDate=10%2F25%2F2007&_rd oc=1&_fmt=high&_orig=search&_sort=d&_doc anchor=&view=c&_acct=C000050221&_version =1&_urlVersion=0&_userid=10&md5=89379676 e52e39621683f697083d8075
                            Ответить
                            • ссылка битая
                              Ответить
                              • Говнокод такой говнокод!
                                Там просто пробелы он вставляет зачем-то... Если уж убрать, то нормально открывается.

                                Или так: http://tinyurl.com/corticalmaps

                                PS. Но сразу предупреждаю, что там матан нейробиология.
                                Ответить
                                • впредб используй тег [code] и там шли ссылку
                                  Ответить
                                  • Пусть лучше Страйкер сделает [url]!
                                    Или хоть пробелы не вставляет...
                                    Ответить
                          • std::string s1;
                            s1 = "preved";
                            s1 += "medved";

                            Ну разве не чудесно ?
                            Ответить
                            • велика разница от

                              webkill_string s1;
                              s1.append("preved");
                              s1.append("medved");

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

                                  для некоторых людей наоборот неочевидно, что такое "сложение строк" (напр. vbnet2000)
                                  Ответить
                          • А вы думаете, матрицы к деревьеям отношения не имеют?
                            Ответить
                      • строки, интерфейс пользователя, вектора, кватернионы, комплексные числа, вычисления с заданной точностью, безопасные вычисления и тд. Сколько угодно можно придумать для перегрузки операторов дел.
                        Ответить
                        • таких классов - 0.001% от всех классов. перебьются
                          Ответить
                      • Фантазию свою пополни.
                        Ответить
                • Плюс плюсов - это сродни Песне Песней, амиго!
                  Ответить
              • > я уже около 4 лет учавствую в холиварах о С++ (до этого я гнал на него так же как и большинство, так как считал что С+Asm круче всех) и единственный аргумент который универсален во все времена это то что С++ слишком сложен для обычных обезъян...

                вообще-то про сложность в каждой ветке начинаешь заливать именно ты! это не мой аргумент. я не считаю, что с++ сложен. вообще слово "сложность" полисемично, неизвестно, что имеется в виду. сложность бывает по недоразумению (тупо без особой цели запутано), сложность бывает по глубине абстракции и т. д. в с++ сложность скорее по недоразумению - желанию скрестить мамонта с рысью. а вот глубина абстрации в С++ довольно низка, по сравнению с ФЯ, просто ничтожна.
                Ответить
                • Вот не надо! Сложность синтаксиса имеет место быть (если боишься её - пиздуй на лиспе писать), но сложность самого языка происходит от обилия возможностей. В том числе и от возможности работать на любом уровне абстракции. Да, ленивые вычисления или декларативное программирование плюсам не по зубам (разве что в простейших случаях), но всё равно другого языка с таким количеством возможностей - нет.
                  Ответить
                  • да мало у него возможностей, все пускание пыли в глаза типа малополезного синтаксического сахара, который бедные обезьянки учат годами, а потом ребятам во дворе хвастают что выучили крутой слоэный язык. но зачем, сами не знаю..

                    > Да, ленивые вычисления или декларативное программирование плюсам не по зубам

                    дело не в них, а в ООП. ООП с++ - говно.
                    Ответить
                    • Лично для меня киллерфичами плюсов являются:
                      RAII, шаблоны (метапрограммированиe лучше только в языках без статический типизации, а они сосут), Qt, производительность и низкое потребление памяти. Где ещё это всё есть? Хотя-бы два пункта из списка сразу?

                      И ООП в плюсах лучше, чем жабе, сишарпе, дельфи и пхп. Я уж не говорю про множественное наследование, которое нечасто, но нужно. И когда оно нужно его заменить тупо нечем, только тонны флудокода городить.

                      PS и с поддержкой юникода нет таких проблем, как у php. Если бы этот сайт был написан на плюсах, мне бы не пришлось править это сообщение с целью избавиться от глюков при отображении.
                      Ответить
                      • > RAII

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

                        > шаблоны

                        согласен, хотя реализация - как всегда...

                        > Qt

                        glib - наше всё

                        > производительность и низкое потребление памяти. Где ещё это всё есть? Хотя-бы два пункта из списка сразу?

                        в си :)

                        > И ООП в плюсах лучше, чем жабе, сишарпе, дельфи и пхп.

                        абсолютно такой же (разница - мелочи), только с говёной реализацией. в пхп вообще ООПа нету, хрень какая-то.

                        > Я уж не говорю про множественное наследование, которое нечасто, но нужно.

                        Не нужно. Это паттерн-заблуждение. Миксины/интерфейсы куда лучше.

                        > И когда оно нужно его заменить тупо нечем, только тонны флудокода городить.

                        Приведи пример. ЗА свою практикику мне ни разу не пригодилось. 99% случаев легко и просто реализуются через аггрегацию, просто те, которые юзат мно. насл., не тем местом (не в ту сторону) думают.

                        > PS и с поддержкой юникода нет таких проблем, как у php.

                        он работает не с code points?
                        Ответить
                        • >> RAII

                          >Сами себе придумали проблему

                          А сокеты/дескриптоды/конекшены за тебя Пушкин закрывать должен? А файлы временные за тебя слуги удалят? А документ юзеру в случае чего бекапить не надо?

                          >> шаблоны

                          >согласен, хотя реализация - как всегда...

                          Говорят, в clang они компилятся быстро и сообщения об ошибках красивше.

                          >в си :)

                          То один пункт был. Сдвоенный.

                          >> И ООП в плюсах лучше, чем жабе, сишарпе, дельфи и пхп.

                          >абсолютно такой же

                          Ну а какой тебе надо? Как в ерланге чтоли?

                          >Миксины/интерфейсы куда лучше.

                          Ну-ну. Они не лучше, они ограниченнее.

                          >Приведи пример. ЗА свою практикику мне ни разу не пригодилось. 99% случаев легко и просто реализуются через аггрегацию,

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

                          >он работает не с code points?

                          В данном случае мне похер что с чем работает. У меня полный десктоп c++ных программ с utf8, а буквы портятся только на говнокод.ру.
                          Ответить
                          • > Вот тебе и пример. Вместо простого наследования ты городишь аггрегацию, и протаскиваешь методы изнутри наружу.

                            Имеешь ввиду ручно вытаскивание методов по типу адаптера?
                            А кто мешает сделать "родителя" простым свойством? Вот так:

                            myCoolObject.MyKakBySecondParent.Value = 10;

                            Это в случае с наследованием.
                            В случае с полиморфизмом - интерфейсы прекрасны. Ничего они не ограниченные. Обобщение классов по независимым, самодостаточным категориям - это тру. Я просто логически не могу представить, как объект может имметь два родителя. Я видел примеры, когда класс Автомоюбиль наследовал классы Колесо, Дверь и т. д. Авмтообиль это не дверь, а средство передвижения! Это логическое недоразумение и неопнимание происходящего. С интерфейсами это прекрасно: имеем произвольные, не имеющие зависимости, категории IHasWheels, IHasDoor и т. далее. и реализуем их. И далее аггрегация: myCar.Wheel.Name = "lala" и т. д.

                            Множ. насл. не нужно это бред.
                            Ответить
                            • >А кто мешает сделать "родителя" простым свойством?
                              Ты это в каком языке видел? С динамической типизацией? Они сливают по скорости, так что считай, что не видел.
                              Ответить
                              • > Ты это в каком языке видел? С динамической типизацией? Они сливают по скорости, так что считай, что не видел.

                                бред несёшь, уди
                                Ответить
                            • >Я просто логически не могу представить, как объект может имметь два родителя.
                              Неасилятор? У тебя 2 родителя(Мама и Папа)? Вот и всё.
                              Ответить
                          • >Пушкин закрывать должен?
                            Вебкил думает, что это должен делать сам Пушков. Приходить дописывать код закрытия с безопасной обработкой исключений и уходить.
                            Ответить
                            • Что сложного в указании ->Close или ещё лучше ->Unref();
                              Ответить
                              • Ты исключения никогда не ловил. Всё говнокод пишешь.
                                Ответить
                                • > Ты исключения никогда не ловил. Всё говнокод пишешь.

                                  потому исключения - говнопаттерн. нужно возвращать просто из функции и всё. перед возвращением удаляешь объекты. что в этом сложного?
                                  Ответить
                                  • Практика показывает, что сложно ничего не забыть и учесть все комбинации сбоев. А ещё сложно эти портянки читать.
                                    Ответить
                              • ничего... просто в С++ это вызывает деструктор самостоятельно, без лишних напоминаний, вышли за область видимости - вызвался деструктор... причем в том же потоке и в конкретно указанное время, в конкретно оговоренном порядке...
                                а теперь перечисли языки в которых такое есть...
                                Ответить
                                • вызывает деструктор самостоятельно в конкретно указанное время.
                                  Ага. В 12:33:35 по Гринвичу.
                                  Ответить
                                  • Желающие могут вставить sleep в конструктор. И произойдёт то, что должно произойти, а не хуй знает что, как в яве.
                                    Ответить
                                • >вызывает деструктор самостоятельно
                                  Болобол. Если ты выделил память из кучи, то может и не вызовется никогда.
                                  В приложениях со сборкрй мусора в таком случае гарантировано, что "деструктор" будет вызван по крайней мере во время завершения приложения.
                                  Ответить
                                  • никто не отменял auto_ptr...
                                    Ответить
                                    • Который создали в тойже куче и его деструктор не вызвался.
                                      Ответить
                                      • какой идиот размещает auto_ptr в куче? ну канечно кроме тупого явиста который в очередной раз пытается доказать что С++ медленный...
                                        Ответить
                                        • Я понимаю в отличие от гестов смысл авто_птра. А он как - тупо удаляет объект или там подсчёт ссылок какой-то? А если я хочу передать объхект в функцию (но в то же время может быть вызвано исключение)? А если я хочу передать в другой поток?
                                          Ответить
                                          • авто_птров как собак нерезанных... можешь выбрать любой или написать свой...
                                            Ответить
                                    • Как ты собрался применить авто_птр, если разместил объект размещающим нью?
                                      Ответить
                                      • сделать auto переменную в которой вызвать деструктор...
                                        Ответить
                                        • >а теперь перечисли языки в которых такое есть...
                                          Сейчас я назову десяток языков и ты даже не сможешь отличить правду от лжи, зная лишь один.
                                          Ответить
                                          • с чего ты взял что я знаю лишь один? в посвседневной работе я использую C\С++, Obj-C, python, cmd-shell, AS2, иногда MaxScript + самописный скриптовый язык...
                                            Ответить
                                            • >cmd-shell
                                              Это ещё какой язык. Всё-то вы какие-то игрушечные языки называете...
                                              Ответить
                                          • А ещё у вас отсутвует чувство элементарной лени. Всё делаете, что можно и не можно сами. Даже сборку мусора.
                                            Ответить
                                            • не все... большую часть делает компилятор...
                                              Ответить
                                        • это конец. Сделай всё на Земле своими руками. Напиши Солнце, молекулы, бактерии и всё сам.
                                          У вас отсутсвует чувство уважения к себе и к своему труду.
                                          Ответить
                                    • показать все, что скрытоvanished
                                      Ответить
                                  • >что "деструктор" будет вызван по крайней мере во время завершения приложения
                                    нет
                                    Ответить
                                • >а теперь перечисли языки в которых такое есть...
                                  В дельфи.
                                  Ответить
                                • >а теперь перечисли языки в которых такое есть...
                                  C++\cli
                                  Тут тебе и вся мощь сборки мусора и const и нормальные делегаты и фреймворк и полностью соответсвует стандарту С++ и даже generic есть.
                                  Ответить
                                  • шлюхи, кстати, тоже есть.
                                    Ответить
                                  • >полностью соответсвует стандарту С++

                                    Нухуя себе ты пиздабол!
                                    Ответить
                                    • прогу ISO С++ ты на нём 100% скомпилируешь.
                                      Ответить
                                      • И с extern templates?
                                        Ответить
                                        • этот стандарт не вышел пока
                                          Ответить
                                          • Вышел давно. Ты путаешь c++98 и c++0x
                                            Ответить
                                            • c++0x ещё принимают. Он пока не считается текущим стандартом и компиляторы не обязаные ему соответствовать.
                                              Ответить
                                            • С++\CLI поддерживает всё то, что поддерживает С++ из Visual Studio 2010.
                                              И даже больше из-за CLI способностей.
                                              Для него есть даже управляемый порт STL.
                                              Плюс он поддерживает всякие фишки, типа дженериков, событий, делегатов, свойства и прочего синтаксического сахара из С#.
                                              Есть даже то, что C# не поддерживает. Индексируемые свойства. Он даже без костылей NET Framework весь поддерживает.
                                              Ответить
                                              • без костылей????
                                                ты на это убожество с закрытыми глазами смотрел? иначе бы заметил его полную неюзабельность... изза такого пиздеца С++\CLI даже индусы мелкосовта не вылазят из фейспалмов...
                                                Ответить
                                                • Там есть возможность юзать одновременно генерики, шаблоны и рефлекшен, так что соси. На нём получаеться мега метапрограммирование.
                                                  Ответить
                                                  • pushkoff бы это оценил.
                                                    Есть возможность на С++ поиметь нереальную производительность с помощью шаблонов и снять ограничения и неудобства шаблонов через рефлекшен. Хотя использовать рефлекшен придётся со осторожностью, что-бы он не сьел весь профит от шаблонов.
                                                    Нереальное ускорение можно получить именно в тех областях, где раньше шаблоны были не применимы из-за своей ограниченности.
                                                    Рефлекшен позволяет находить самые смелые методы оптимизации через шаблоны.
                                                    Ответить
                                                  • блять да ты же абдолбаный...
                                                    такую лажу гонишь...
                                                    Ответить
                                                    • А у вас, батенька, батхерд.
                                                      Ссыкатно, что я твой лисп не только по производительности, но и по возможностям метапрограммирования обойду?
                                                      Ответить
                                                      • вот это ололо...
                                                        ну попробуй обойди или ты ссыкливая обезьяна?
                                                        Ответить
                                                        • Слухай, трольчатина.
                                                          С++ и С++\CLI рулят немеренно во всех сферах.
                                                          Ты лишь на говнокоде горазд со своим VB.
                                                          Ответить
                                                          • не увиливай от ответа, ссыкливая обезьяна... это ты тут троллишь, причем толсто, ебануто и неумело... пишу сучка CAS на С++ если не осилишь будешь сосать немытые хуи всех гестов говнокода потом искупаешься в золотом дождике и закусишь парой килограмм отборного жидкого кала, но это все будет после того тебе обкончанными дилдами натрут до кровавых мозолей твой уебанский анус.
                                                            Ответить
                                                            • *пиши CAS (computer algebra system)
                                                              Ответить
                                                              • В википедии нет такого определения. Так что приведи определение.
                                                                Ответить
                                                                • может тебе ещё и девушку привести?
                                                                  Ответить
                                                                  • ну чё, крестоблядок, раз тему перевел значит слил когда свое предназначение исполнять собираешься?
                                                                    Ответить
                                                                    • Это был не я. Не собираюсь я с тобой письками мерятся. Мне похуй, что ты думаешь об этом языке.
                                                                      Ответить
                                                                      • зато бля мне не похуй, ссыкливая макака... жри гавно или уёбывай
                                                                        Ответить
                                                                        • да ты петух. макаки таких не боятся
                                                                          Ответить
                                                                          • что что? ты теперь питушара? начал исполнять план?
                                                                            Ответить
                                                                            • You are Cock Monkey!
                                                                              Ответить
                                                                              • хаха ты такой спермоклоун, так класно проглатил сийчас, надо бы тебе в попку наканчать.
                                                                                Ответить
                                                                                • Петушкофф?
                                                                                  Ответить
                                                                                  • Хуюшкофф...
                                                                                    ну так че ссыкливая крестоблядь, ты написал CAS? или уже сосешь хуйцы как киловаттный гидронасос?
                                                                                    Ответить
                                                                                    • >ты написал CAS? или уже сосешь хуйцы

                                                                                      Конечно, лови

                                                                                      CAS# latency (CL)		22.0
                                                                                      RAS# to CAS# delay (tRCD)	22
                                                                                      RAS# Precharge (tRP)		22


                                                                                      Специально из SPD для тебя вынул
                                                                                      Ответить
                                                                          • Петух и макака в одном комментарии! 2010-й год!
                                                                            Ответить
                                                                    • #define out [System::Runtime::InteropServices::Out]
                                                                      #define params ... array<System::Object^>^
                                                                      
                                                                      void test(foo ^%param1, out foo ^%param2, params param3)
                                                                      {
                                                                      };


                                                                      1)Первое передача по ссылке экземпляра класса foo; Его можно будет пересоздать заного. В С# это ref.
                                                                      2)Затем передача по ссылке ещё не созданного экземпляра класса foo, который можно создать в функции;
                                                                      3)И затем переменное число любых параметров.
                                                                      Ты когда-нибудь видел что-бы так можно было делать в С++98?
                                                                      Ответить
                                                                      • я нипонел, ссыкло, ты еще здесь? и уже успело отсасать...
                                                                        Ответить
                                                                • показать все, что скрытоvanished
                                                                  Ответить
                                • >а теперь перечисли языки в которых такое есть...
                                  А теперь перечисли мне языки, в которых нет такого уродстав?
                                  Ответить
                                • Вы пытаетесь говорить с человеком, чей мозг безвозвратно деформирован горбатым дворником. К сожалению тех, кто долго писал на языках с GC, уже не спасти. Они не понимают концепцию "владения", концепцию деструкторов, не знают что такое "указатель", и даже то куче у них странные представлчения
                                  Ответить
                        • >Миксины
                          Это как раз реализуется через множественное наследование. Покажика мне реализацию в других языках, где они есть? В том же C# их нет, тк нет множественного наследования.
                          Ответить
                          • http://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%81%D0%B8%D0%BD%D1% 8B
                            Ответить
                            • ссылка битая. отправ через тег [code]
                              Ответить
                            • Микси́ны (лат. Myxini) — подкласс позвоночных класса круглоротых. Длина тела — 45—70 см. Непарная ноздря расположена на конце головы и сообщается с глоткой. Рот и ноздря обрамлены 6—8 мясистыми усиками.

                              Это твои родственники, Вебкиллушка?
                              Ответить
                              • Мясистые усики? Это скорее Ктулху сородичи!
                                Ответить
                                • Не купайте в Неве ноги:
                                  В ней разводятся миноги.

                                  Круглоротые — это рыбоподобные существа (вот такое обидное определение). Усики у них крошечные и на щупальца Ктулху совсем не похожи. У сома усы и то заметнее.
                                  Ответить
                                  • показать все, что скрытоvanished
                                    Ответить
                                    • Так как первое мышление
                                      Привезено в старый сарай от предков.
                                      Мудрый старый предок дышит
                                      Каждое слово, которое сладкой благодати отголосок
                                      Из твоего разума...

                                      Когда семь солнц
                                      Их пламя означало
                                      Последнюю память
                                      Мудрый предок не дышит.
                                      Каждое слово, которое, гнилой мертвый отголосок
                                      Из твоего разума...
                                      Ответить
                                    • В Африке гориллы,
                                      Злые крокодилы,
                                      Будут вас кусать,
                                      Бить и обижать,
                                      Не ходите, дети,
                                      В Африку гулять.
                                      Ответить
                                  • показать все, что скрытоvanished
                                    Ответить
                                    • Была и неоднократно, но редко. Причину не знаю, но я на всякий случай фуразолидон принимал, вдруг это из-за инфекции.

                                      А фразу я впервые услышал на радио.

                                      Если ты про diary.ru, то неплохая блогоплатформа (вообще удивительно, как эта платформа выжила на фоне того, что даже «Яндекс» и «Mail.ru» закрыли свои блогоплатформы после введения антиблогерских законов), но я не блогер.
                                      Ответить
                              • Хуекси́ны.
                                Ответить
                              • >Микси́ны (лат. Myxini) — подкласс позвоночных класса круглоротых.

                                Инью, ты слышал?
                                Ответить
                            • http://en.wikipedia.org/wiki/Mixin
                              ты эту ссылку ниасилил, уёб?
                              Ответить
                        • > Qt
                          >> glib - наше всё

                          GLib — низкоуровневая библиотека, расширяющая возможности, предоставляемые стандартной библиотекой libc языка C. (wikipedia). Ты наверное имел в виду полудохлый GTK ? Так посмотри на возможности gnome И kde. Сравнил хрен с пальцем.
                          Ответить
                          • > Так посмотри на возможности gnome И kde.

                            Сравнил. КДЕ+федора не запустилась ни на ноутбуке, ни в виртуалбоксе. Зато гном-убунту запустился. КДЕ - замечательная среда, там такие аляповатые шрифты и вообще всё, да ещё и не запускается - всё как я люблю

                            > Ты наверное имел в виду полудохлый GTK ?

                            открываем дистровотч, рейтинг дистров:

                            1. Ubuntu 10.04 - гном
                            2. Fedora 13 - гном
                            3. openSUSE 11.2 - кде
                            4. Debian 5.0.4 - гном
                            5. Linux Mint 9 - гном

                            на последнем издыхании, аха.
                            Ответить
                            • В то время как гномеры сидят и наслаждаются некрофилией со своим ДЕ, кдеешники осваивают новые технологии. (сказал кто то на linux.org.ru )
                              Ответить
                              • > кдеешники осваивают новые технологии

                                новые технологии - это такой эвфемизм к "свителки и перделки"?
                                Ответить
                            • херня твой ноутбук и виртуал бокс...
                              я сидел под Кnoppix LiveCD с КДЕ (2005) на P200 с 64 мб оперативки...
                              назвать работой это сложновато, но запустилось...
                              Ответить
                              • >назвать работой это сложновато, но запустилось

                                хаха. у меня так-то запустилось, но были кучи артефкатров, все мерцало

                                я это считаю "не запустилось"

                                гном на тех же настройках запустился и летал...
                                Ответить
                                • у меня не мерцало... работало но медленно...
                                  Ответить
                            • Не ври, я лично запускал все федоры под virtualbox, и половину - на реальном железе. Успешно. Единственное - глюки в инсталляторе почти в каждом релизе, но не удивительно, инсталлятор же на питоне.

                              То, что гном во многих дистрах выбран по умолчанию ни о чём не говорит. Го на лор искать опрос про DE. Естественно, KDE там лидирует с отрывом. Даже несмотря на то, что тогда плазма падала.
                              Ответить
                              • > Не ври, я лично запускал все федоры под virtualbox, и половину - на реальном железе

                                не вру, она просто зависала на загрузке - и всё (вбокс 3.1.4 вроде, щас апгрейдился до 3.2.4, но не проверился)

                                > То, что гном во многих дистрах выбран по умолчанию ни о чём не говорит.

                                говорит. с чего не говорит? хочешь сказать, они его от бадлы туда вставили? наверное они туда и ядро линукс от балды вставили? ядро линукс в этих дистрах тоже ни о чём не говорит (молчит и тихо себе работает, пока КДЕ и их любители пиздят о том как КДЕ крута и уверяют что ничо не падает).

                                > Го на лор искать опрос про DE. Естественно, KDE там лидирует с отрывом.

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

                                Опросы на лоре мне ни о чём не говорят.
                                Ответить
                                • >на лоре сидит очень неприятный контингент.

                                  И это я слышу на говнокод.ру, омгф.
                                  Ответить
                            • У меня много имён в разных странах. Среди гномов меня называли Таркуном. Именно поэтому я за гномов.
                              Ответить
                        • показать все, что скрытоvanished
                          Ответить
                      • >legolegs 16 часов назад # +1
                        Лично для меня киллерфичами плюсов являются:
                        RAII

                        Ред Аллерт второй?
                        Ответить
                • прочитай еще раз

                  > Плюс плюсов именно в универсальности.
                  С одной стороны у тебя ООП, перегрузка операторов и прочие мощные средства построения логичного, читаемого кода бизнес-области.
                  > С другой стороны ты можешь спуститься до API операционки (который обычно бывает на C) и общаться с ним напрямую.

                  мамонт с рысью скрещен и является 3 по популярности языком программирования и при этом он содержит в себе достоинства обоих лидеров: низкоуровневость и объектно ориентированность...

                  давай-ка расскажи где твои ФЯ можно на практике применять, желательно с рабочими примерами...
                  Ответить
                  • > мамонт с рысью скрещен и является 3 по популярности языком программирования

                    он популярен не по тем заслугам, которые ты ему инкриминируешь, а только лишь из-за со своего compatibility с си. Т.е., например, виндовс виста была тем ещё говном, но её покупали, потому что она преемник популярной виндовс экспи. с++ популярен благодаря инертности мышления программистов и просто стечению обстоятельств. не по заслугам совершенно.

                    > давай-ка расскажи где твои ФЯ можно на практике применять, желательно с рабочими примерами...

                    а вот ФЯ непопулярны, потому что они не подходят в рамки интертного мышления простого программиста. если он сначала кодил на асме, потом на си, и когда повяились с++ и хаскель (или любой другой супермегазамечательный язык -- допустим, что появились одновременно), он бы в любом бы случае выбрал с++. с чего бы ему перестраиваться? это ведь мозг нужно напрягать.

                    с популярностью у тебя слабая аргументация, так же можно скаать что:

                    1) виндовс - замечательнейшая операционная система, потому что она популярна
                    2) лада - замечательнейший автомобиль, потому что популярен
                    3) дом2 - мегаацки пиздатый проект потому что... Догадайся почему.

                    Мейнстрим это не хорошо и не плохо, я ктому, что с++ популярен не благодаря своим каким-то качествам, а благодаря истории за его спиной.
                    Ответить
                    • История у си не хуже. И тем не менее, плюсы его обошли по популярности.
                      Ответить
                      • > И тем не менее, плюсы его обошли по популярности.

                        http://langpop.com/
                        Ответить
              • >до этого я гнал на него так же как и большинство, так как считал что С+Asm круче всех
                Ага. А потом захотелось пользоваться DirectX, а он объектный и тебе пришлось перейти на С++.
                Ответить
                • DirectX чисто сишный, как и все олд-скул виндовые апи.
                  Ответить
                  • Он чисто COM, что есть объекты
                    Ответить
                    • DirectX? COM? Ты совсем пизданулся? Может он ещё и через OLE работает?
                      Ответить
                    • там есть переключалка типа
                      device->CreateTexture(...) для C++
                      и
                      D3DDevice9_CreateTexture( device, ... ) для С
                      Ответить
            • +1 Поддерживаю ВебКила.
              Ответить
          • pushkoff, они просто нифига не понимают в языках.
            Ответить
            • зато пушкофф не понимает в алгоритмах...
              Ответить
              • пруф?
                Ответить
              • пруф, или не было?
                Ответить
                • Зачем пруфы? И так всем известно -- в геймдеве нет сложных алгоритмов, весь матан перегоняется копипастай, "искусственный интеллект" банальная парочка if-else, геймдев это отстойник...
                  Ответить
                  • пруфы будут?
                    Ответить
                  • Слуш, у ребят из VCMI проблемы с AI, может поможешь им, а? Напишешь пару ифов, туда-сюда. А то почти готовый свободный клон homm3, а AI нету.
                    Ответить
                    • есть тут убойная идейка: для ai использовать embedded prolog
                      предрекаю, что скриптмейкеры вырвут себе глаза, когда узнают, что им вместо уютненького lua подсунули =)
                      Ответить
                      • особенно если учесть, что скриптмейкеры - это люди без особого опыта программирования и пишут скрипты методом копипаста с примеров...
                        Ответить
                        • с такими эффект будет еще более фееричным ))
                          Ответить
                        • Для AI такого скилла, думаю, не хватит.
                          Ответить
                        • вы чё-то парни путаете. есть аи которые пишется программисты, и есть аи (точнее, скрипты) которые пишется дизайнерами-скриптмейкерыами...

                          нужно различть... например GOAP, radiant AI - там нужны скиллы, и они пиштся отнюдь не людьми без особого опыта программирования ...
                          Ответить
                          • AI состоит из 2 частей: одна в коде, другая в скриптах... в коде находятся самые универсальные и самые сложные части AI типа поиск путей, выбор видимых противников, и тп... скрипт просто посылает команды в код или обрабатывает результат кода, допустим идти в точку, или стрелять в конкретного врага... простейшие скрипты это действительно пара if или ожидание какого либо события, в более сложных условий уже побольше пары if: поведение + переключение анимаций + реакция на условия окружающей среды + реакция на коллизии + у всего этого могут резко поменяться приоритеты с изменением состояния объекта...
                            Ответить
                  • > И так всем известно -- в геймдеве нет сложных алгоритмов, весь матан перегоняется копипастай, "искусственный интеллект" банальная парочка if-else

                    Ты уже написал "убийцу ММОРПГ"? Или не стал из-за проблем с авторскими правами?
                    Ответить
    • Я бы в С++ оставил всё как есть, но убрал бы необходимость так много писать.
      Ответить
      • Оставить все как есть, но все изменить? Шизофазия...
        Ответить
      • и без шлюх?
        Ответить
        • шлюх оставлю, хотя они больше нужны именно СиПиписникам, девушки, то не дают.
          Ответить
    • Ну давайте же! Насрите тыщу коментов!
      Ответить
    • Господа, никто не сомневается, что на любом языке можно написать говнокод, будь то си асм или плюсы. Индокод на плюсах ( видел закрытый код у компаний с Именем ) - это тихий ужас, в то же время этого не скажешь про винрарный кути.
      Цель ресурса пообсуждать что сделано правильно и что не правильно, как бы сделать лучше. Но уж никак не переходить на личности и опускаться до обсуждения какой язык лучше - возьмите линейку и раз и навсегда все решите ...
      Ответить
      • Ты видел, как в этом языке лямбды пишутся? Это же жопа.
        Ответить
        • Ты имеешь ввиду писались пять лет назад? Да, трудно спорить, писанины было дохуя, причём за пределами функции.
          Но сейчас синтаксис вида [](int x) {return outer*x;} на мой взгляд вполне годен.
          Ответить
          • А на мой взгляд алогичный блядосинтаксис.
            Ответить
            • А как надо? Вот в javascript лямбды почти такие-же, и никто не называет их блядосинтаксическими.
              Ответить
              • явскритпа потому что позволяет нам ходить на сайты, смотреть порно даже и лямбды там неотхэемлая часть всего этого рпаздника жизни

                а с++ - что... как-то ни туда ни сюда
                Ответить
                • Будто ты знаешь, что такое лямбды?
                  Ответить
                  • да, это замыкание моего кулака на твоё ебло
                    Ответить
                    • показать все, что скрытоvanished
                      Ответить
                      • Нахуй ты отвечаешь уебку?
                        В игнор захотел?
                        Ответить
                        • показать все, что скрытоvanished
                          Ответить
                          • Нехуя не понятно. Что это? Ты хотел это или что-то другое?

                            local petux = (function() return "lambada" end)();
                            print(petux); --lambada
                            Ответить
                            • Йорандо се фуэ
                              И ме дехо соло син су амор.
                              Йорандо се фуэ
                              И ме дехо соло син су амор.

                              Соло эстара́ рекордандо эсте амор
                              Ке эль тьемпо но пуэрде боррар.
                              Соло эстара́ рекордандо эсте амор
                              Ке эль тьемпо но пуэрде боррар.
                              Ответить
                              • Vremii ceas crunt croiesc 'n
                                Mănunchi dă cer trăznet îmbată
                                Chezaş larg desfac în prugă
                                Tîlc lucitor mintea zăreşte
                                Zbor în zor' şî dor
                                Zdrobitor, izbăvitor
                                'N lume 'nălţător
                                Zmău zburător!
                                Bur dă ploaie m-a udat;
                                Frunzele-aşezat...
                                Şarpele bălăurel, cu solzii oţel,
                                Şarpele balaur, cu solzii faur
                                Ridicatu-s-a, dîn văi
                                Scuturatu-s-a, dă stele
                                Ai, alei, lei paralei!
                                Zmeii mei, zburaţi!
                                Dîncolo dă boltă asfinţită
                                'N zori dă ziuă năruită
                                'N chin dă noapte zămislită
                                Prîn fereastră
                                Ce-n al ei zbucium,
                                Stă nemurită
                                Sîlnica pămîntului
                                Găzdăbaşa dracilor
                                Gerunea pietrii pradă
                                Nămetenia malacă
                                Făţcăparea vrăjilor
                                Ответить
                                • Больше всего нравится строчка "Zdrobitor, izbăvitor"
                                  Ответить
                                • АААА! «vreme» обычно переводится как «погода», а не как «время». Какой багор )))
                                  Ответить
                                • Да и румынский язык забавный.
                                  Сначало жили даки. Потом пришли римляне - покорили даков. Потом рим развалился и дакский и латинский языки смешивались в течении 1500 лет. Потом эти чуваки очнулись и подумали ебать мы римляне. С тех пор они румыны.
                                  Ответить
                                  • У них ещё много заимствований из славянских языков, но с забавным произношением. Например, «повэ́шть» означает «повести», «рассказы»:
                                    https://en.wiktionary.org/wiki/poveste
                                    https://ru.forvo.com/word/poveşti/#ro
                                    Ответить
                                  • https://youtu.be/FcCedRHjuOc
                                    Ответить
                                  • А ещё мне нравится молдавско-румынский словарь:
                                    https://ru.scribd.com/doc/138467278/Dicţionar-Moldovenesc-Roman-ediţia-a-II-a-2011-V-Stati


                                    Там есть интересные пары вроде «cuznéţ — fierar»: молдавский вариант заимствован у русских («кузнец»), румынский вариант — у римлян.
                                    Ответить
                            • показать все, что скрытоvanished
                              Ответить
                          • показать все, что скрытоvanished
                            Ответить
        • У каждого языка есть своя область использования. Нужны красивые лямбды - использую лисп, питон. В то же время никакой другой объектно-ориентированный язык программирования так широко не используется во встраиваемых системах как С++( ну может с джавой можно поспорить ). За пост +1, да - не красиво, но не более того.
          Ответить
          • > В то же время никакой другой объектно-ориентированный язык программирования так широко не используется во встраиваемых системах как С++( ну может с джавой можно поспорить )

            да, только вот если убрать фильр "объектно-ориентированный язык" и увидим, что простой си юзается в десятки раз больше. с++ во встраиваем. - это пистец каким цпполюбом быть, чтобы делать такое решенгие.
            Ответить
            • убрать фильтр о-о язык. да уж. ты точно понял что я имел в виду.
              Ответить
            • "и увидим, что простой си юзается в десятки раз больше" полагаемся на твое "экспертное" мнение ?
              С++ во встраиваемом используют многие "распальцованные" компании. Уж не тебе ли указывать что им использовать ? Насчет мощи Си - я согласен. Разговор был про ООП.
              Ответить
    • Хм... Это вроде не говнокод, а банальное изобретение велосипеда...

      void SomeMethod(void)
      {
      const int a, b;
      //...
      someContainer.SomeGroupOperation(boost:: bind(SomeCalculation, a, b, _1));
      a++; b++;
      someContainer.SomeGroupOperation(boost:: bind(SomeCalculation, a, b, _1));
      //...
      }

      чем хуже?
      Ответить
      • поправочка:
        ...
        const int a, &b;
        ...
        ... boost::bind(SomeCalculation, a, boost::ref(b), _1) ...
        ...
        Ответить
        • boost::bind2nd(SomeCalculation, a, boost::ref(b))
          Лучше так.
          Ответить
          • Не скомпилится. bind2nd работает с бинарными функциями и привязывает только один (второй) аргумент, а здесь функция триарная, и результат бинда ещё должен как-то x принимать.
            Ответить
    • Внутреннее представление замыканий в современных компиляторах примерно такое же, как в представленном коде:
      https://cppinsights.io/s/7cfbda1b

      Создаётся класс с перегруженным оператором (). Если там не чистая лямбда, а с замыканием (с захватом контекста), то ещё создаются приватные поля.
      Ответить
    • показать все, что скрытоvanished
      Ответить

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