Кресты / Говнокод #20099 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
#define public public: void operator delete(void *pituh) {}; public
     
class poteklo
{
public:
    poteklo() :
        TheAnswer(42)
    {
         ;
    }
     
private:
     int TheAnswer;
};
     
int main(int argc, char *argv[])
{
    poteklo *uteklo = new poteklo;
    delete uteklo;    // Утекло!

    return 0;
}

Макро в духе "#define TRUE FALSE", только хардкорнее.
https://ideone.com/ZdGnuL

Запостил: gost gost, (Updated )

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

  • А если
    int main() {
       poteklo uteklo;
    }// утекло?
    
    это как-то можно слить?
    Ответить
    • Да, причём это будет и надежнее, и беспалевнее:
      #include <iostream>
      
      #define public class utekator { public: utekator() { int *a = new int[100]; std::cout << "vasha pamyat' utekla" << std::endl; } };utekator pituh; public
      
      class poteklo
      {
      public:
          poteklo()
          {
      
          }
          
          ~poteklo()
          {
      
          }
      
      };
      
      int main(int argc, char *argv[])
      {
          for (int i = 0; i < 10; i++) {
              volatile poteklo uteklo;
          }
          return 0;
      }


      https://ideone.com/Z9YYHF
      Ответить
  • void operator delete(void * pituh) throw() {}
    И не нужны никакие макросы.
    Ответить
  • У меня довольно часто больше одной секции public на класс.
    Ответить
    • #include <iostream>
      using namespace std;
      
      #define GAY(a,b) a ## b
      #define PIDORAS(a,b) GAY(a,b)
      #define public class PIDORAS(utekator, __LINE__) {public: PIDORAS(utekator, __LINE__)() { new int[100]; std::cout << "vasha pamyat' utekla" << std::endl; }}; PIDORAS(utekator, __LINE__) PIDORAS(pituh, __LINE__); public
      
      class poteklo
      {
      public:
          poteklo()
          {
      
          }
      
          ~poteklo()
          {
      
          }
          
      public:
          bool isPoteklo()
          {
              return true;
          }
      };
      
      int main(int argc, char *argv[])
      {
          for (int i = 0; i < 10; i++) {
              volatile poteklo uteklo;
          }
      
          return 0;
      }


      Я починил!
      https://ideone.com/KxC42o
      Ответить
  • И вообще, все продвинутые модерн-сипласплас17 дивелоперы хранят все переменные в шаредпойнтерах, которые создают с помощью make_shared.
    Ответить
    • Ты так говоришь, как-будто шаред поинтер не понимает перегруженный delete.
      Ответить
    • хранят все переменные в шаредпойнтерах питухи в основном, а цари хранят их в юникпойнтерах
      Ответить
          • Правильно. Верилог наше все, а остальное для анскильных питухов. На худой конец асмблер
            Ответить
          • Царь жив!

            Кстати, его тезисы:
            • Возьмём гццешную стл(одно из самых, если не самая) — является не более, чем генерик-интерфейсом к glibc.
            • Я не заметил разоблачения этого мифа в статье, но он очень популярен среди пользователей генерик-интерфейсов — они верят в оптимальные генерик-имплементации. Основан он на вере в мистическую силу компилятора, т.е. по-факту компилятор должен предоставить нам все имплементации оптимальные для каждого конкретного типа. Что опять же противоречит убеждению в том, что обобщенная реализация состоятельна как оптимальная.
            • Стандартный сишный аллокатор во всех либц(который является основой С++ аллокатора во всех известных мне реализациях) очень плох.
            • Далее — реализация того же «O(1)» хешмапа обладает адских оверхедом по памяти — там не 10, не 100, не 1000 крат оверхеда.
            • Почему в С++ вообще существует разница между копирование объекта и полей? Правильно — причина в самом С++, а вернее в raii. Т.е. перемещение является кастылём для raii, но никак не какой-либо оптимизацией.
            • В сишке передаётся копия полей, указатель — никаких проблем. Нераишный вектор передаётся спокойно копией полей безо всяких кастылей. А сама raii показала свою полную несостоятельность — привет никакущие строки в С++, а так же все попытки создать нераишные строки(привет string_view).

            Он же разбил кресты в пух и в прах.
            Ответить
          • Ну в этой каше есть здравая мысль. В плюсах хочешь не хочешь, а накопируешь и нааллоцируешь - стандартная библиотека очень предрасполагает. Чтобы этого не делать, нужно очень сильно изъебываться. Есть конечно попытки это исправить типа std::array, boost::string_ref, boost::static_vector, но этого во-первых мало, а во-вторых хрен знает, как этим пользоваться, когда любая либа принимает на вход std::string и std::vector.
            Ответить
            • Я написал свою либу, она принимает tblib::Stringref и tblib::Slice, но в сишкоговно, требующее ублюдочные нуль-строки, слайсы не передать, приходится копировать.
              Ответить
                • Я знаю, что если у меня есть огромная строка, занимающая всю оперативу, причём в области памяти, защищённой от записи, то я тупо не смогу вообще передать её первую половину в сишкофункцию.
                  А в нормальную функцию, ждущую слайс, могу.
                  Ответить
  • Макро действует только на питухов удаляющих объекты вручную.
    Ответить
  • Utekay();
    В подворотне вас ждет маньяк,
    Он поддерживал ваш говнокод.
    Ответить
  • Utekay();
    В подворотне вас ждет маньяк,
    Он поддерживал ваш говнокод.
    Ответить
  • Боже! Как же здесь хорошо.
    Я не хочу на гейдев, где обсуждают фотки Найтмареза и отсутствие тян у Тараса.
    Я не хочу в реальный мир, где вообще какая-то непонятная хуита творится.
    Я просто хочу быть здесь и обсуждать программирование...
    Ответить
            • Да уж, лучше быть здесь и обсуждать программирование...
              Ответить
                  • Как бывший юзер кде под фрёй вынужден не согласиться. Кде всё ещё вкусняшечка.
                    Ответить
                    • угу
                      именно по этому все современные дистрибы по-умолчанию предлагаю что-нить на gtk, какой-нить форк гнома
                      Ответить
                • cd /usr/ports/x11/kde4
                  make distclean config patch install

                  Может потребовать пересборку кьюта.
                  Ответить
          • Yo, dawg! I've heard you like to обсуждать фотки найтмареза so I've decided to put links to some other site, где тоже можно обсуждать фотки найтмареза:
            http://holywars.ru/comments/3311#comment_86906

            Also in some thread был выложен альбом «Оккупированный Крым моими глазами», который я сейчас не могу найти. Только вы пидару не рассказывайте, что Найтмарез считал Крым российским ещё до того, как это стало мейнстримом.
            Ответить
            • да я отфотошопленные выложил фотки.


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

              Блин, что вы творите вообще... нихочу его обсуждать. как и Тараса. прекратите это
              Ответить
              • > ты откуда найтмареза знаешь

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

                > хорошо что он не знает, что мы его фотки тут обсуждаем

                Можно попробовать пригласить. Бонусом будет, что ещё один человек пошлёт пидара напитон.

                .....

                Я вообще со счёта сбился, на скольких сайтах видел найтмареза. Он даже в Лурочке упомянут. И Тарас, кстати, тоже.
                Ответить
              • Офтопик. Случайно не знаешь пользователя JAre? Он как-то подозрительно одновременно исчез и с Гейдева, и с Холиварсов.
                Ответить
                • > JAre? Он как-то подозрительно одновременно исчез и с Гейдева, и с Холиварсов.
                  бросил форумы и пришел к успеху в реальном, запостив игру в стим
                  Ответить
      • А что по твоему творится в реальном мире? Тни не нужны. Все друг друга подставляют, врут и делают не то что их просили. Друзей не найти. И вообще я ещё не царь.
        Ответить
      • Это ты в реальном мире крутой, а на гавнокодите ты кто? Аноним сраный
        Ответить
  • Что тогда нужно написать в операторе, чтобы почистить инт?
    Ответить
              • Тупо то, что ты все эти пароли забудешь, и никто не сможет воспользоваться этими акками
                Ответить
                • Об этом я как-то не подумал. Ну ладно, держите аккаунт с простым паролем.
                  Ответить
                    • Под Яндексом. Причём с одного ящика (используя + и суффикс). Так что Страйкеру будет легко удалить всех виртуалов одним запросом с LIKE.
                      Ответить
                        • На кой хер они тут? Архив обсуждений есть у Борманда, а юзеры тут всё равно не нужны.
                          Ответить
                          • > Архив обсуждений есть у Борманда
                            Борманд бекапы этого архива не делает, хотя надо бы.
                            Ответить
                            • Всегда, откладывая бекап в долгий ящик, представляйте себе психа, который ждёт удачного момента для уничтожения информации.
                              Ответить
                        • Не знаю. Кстати, с прошлого апреля зарегистрировал 87 виртуалов (включая этот) с одного (!) яндексовского ящика. Вроде до сих пор все живы. Но можно проверить.
                          Ответить
                            • Зарегистрировался 22-тысячный юзер. Ура, товарищи!
                              Ответить
                                • Вот, кстати, не люблю, когда 2019 год называют 2k19, потому что 2k19 –— это 2,19×10³ = 2190.
                                  Ответить
                                  • А зачем эту питушню с 2k19 придумали? Неужели точка занимает так много места? Или это помехоустойчивое кодирование, т.к. точка легко стирается, а k/M - нет?
                                    Ответить
                                    • Ну и стирается меньше и "К" куда-то писать надо.

                                      А потом на SMD мелочи и K убрали. В итоге 202 это 20 * 10^2 = 2000.
                                      Ответить
                                      • Самое прикольное, что на SMD 100 —– это 10 * 10^0 = 10.

                                        Кстати, а как на SMD обозначить отрицательную степень десятки?
                                        Ответить
                                        • С R, как и раньше. Типа R20 это 0.2

                                          Видимо меньше 0.01 (R01) не используются.

                                          З.Ы. На перемыках написано 000.
                                          Ответить
                                        • А на кондёрах вообще нихуя не пишут. Краска не держится?
                                          Ответить

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

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8