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

    +15

    1. 1
    void* const allocateOrDie(const size_t Size) throw();

    Ультиматум. :)

    Запостил: HaskellGovno, 03 Июля 2012

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

    • по-моему, в плюсах оч не хватает функции die(), как в пхп
      Ответить
      • Нате http://ideone.com/nkK6y. Как в пхп.
        Ответить
        • спасибо, теперь цпп может убиться :)
          Ответить
        • ПОСОНЫ НЕ ОТКРЫВАЙТЕ У МЕНЯ ОТ ЭТОЙ ХУЙНИ EXECUTION ERROR, 0 returned, С++ РАСПИДОРАСИЛО ПЕШУ С МАШИННЫХ КОДАВ.
          Ответить
    • > Ультиматум. :)
      Судя по throw() этот код действительно делает харакири при недостатке памяти. (Хотя может и вернуть NULL, если силы воли не хватит).
      Ответить
      • >код действительно делает харакири
        Бережет свою честь. Путь самурая. Выполнить или умереть.
        Ответить
      • > делает харакири
        *делает сеппуку

        Харакири - неправильное сеппуку ;)
        Ответить
        • Точно такое же, только звучит чуть менее ритуально.
          Ответить
          • Не только звучит. Сеппуку - это целый обряд. Там и честь и многое другое. А харакири так, детская забава.
            Ответить
            • Как хорошо, что есть викижопиядоступные источники информации. Потому позволю себе оставаться при своём мнении.
              Ответить
    • void* const
      const size_t
      ммм
      Ответить
    • Я придумал новую шутку.
      void* allocate(size_t size) const ...
      ИММУТАБЕЛЬНЫЙ АЛЛОКАТОР АХАХАХАХАХАХА
      Ответить
      • опять пытаешься приписать const не методам объекта?
        Ответить
        • Ну типа это метод аллокатора, ну ты понел
          Ответить
          • А что плохого в иммутабельном аллокаторе? Вдруг так и задумано, что он всегда возвращает одну и ту же область?
            Ответить
            • Синглтон?
              Ответить
              • Не совсем. Их же можно насоздавать несколько. И каждый из них будет возвращать свою void*. На синглтон не особо тянет.
                Ответить
          • В С++ такое возможно. Просто размещаем реальный аллокатор в другом объекте или помечаем изменяемую область этого объекта, как mutable.
            Ответить
            • Да, но зачем?
              Ответить
              • Ну, к примеру есть два класса - Pool и Allocator.
                Pool платформозависимый, и умеет просить у операционки странички памяти и возвращать их ей.
                Allocator понятия не имеет об этой низкоуровневой фигне, но ему в конструкторе передали указатель\ссылку на пул. При этом все служебные структуры он пишет в странички, полученные через пул, и никак не меняет своих полей, поэтому его методы и могут быть объявлены как const.

                Накуренный пример конечно...
                Ответить

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