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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
typedef SmartPtr<CallRec> callptr;

callptr *m_call;

if (m_call && (*m_call) && (*m_call)->SomeMethod()) {
    // ...
}

GnuGK и смартпоинтеры.

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

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

  • глупый указатель на умный указатель

    программисты индиректили индиректили да не выиндиректили
    Ответить
  • А SmartPtr это не unique_ptr случайно?
    А то я видел подобное. Гениальная причина: «а он по-другому не копируется»
    Ответить
      • P.S. Автор смартпоинтера - скобконенавистник:
        SmartPtr<T> &operator=(const SmartPtr<T> & p) {
            if (pt != p.pt)
                Dec(), pt = p.pt, Inc();
            return *this;
        }
        Ответить
        • Какая интересная конструкция, надо бы запомнить.
          Ответить
          • Да ну его. До точки с запятой мизинец двигать не нужно, а до запятой - нужно. Лишнюю энергию тратить.
            Ответить
            • Народу просто лень {} вводить. На америкоских клавах это просто, но даже в европе есть страны где клавы просто через Ж сделаны и до большинства спец символов нужно 3/более нажатий.

              Страуструп в крестах <%/%>/and/or/etc не от хорошей жизни ввел. На его родной датской клаве до многих символов добиратся не легко. Та же фигня на французской клаве и в какой-то степени на немецких клавах.
              Ответить
              • >Страуструп в крестах <%/%>/and/or/etc не от хорошей жизни ввел. На его родной датской клаве до многих символов добиратся не легко.
                Да что Вы - кресты один из самых перегруженных значками и символами языков.
                Вообще я сильно сомневаюсь что программы там пишутся на датском, думаю у большинства кодеров в мире стандартная английская раскладка.
                Ответить
                • > Вообще я сильно сомневаюсь что программы там пишутся на датском, думаю у большинства кодеров в мире стандартная английская раскладка.

                  Нет. На европейских клавах буквы в других местах находятся. Как в той же немецкой - Z vs. Y. И у кнопок слева (между буквами и Enter'ом) другая физическая форма: для тех кто печатает в слепую это большая проблема. Поэтому для большинства англиская раскладка так же трудна как и нативная.
                  Ответить
                  • Значит Сиплюструп и вправду тролль - все мучаются, а он смеется и насыпает еще.
                    А сам при этом давно не пишет ничего.
                    ~!%^&*() ?: [] {} ;<> - все эти значки используются по несколько раз.
                    Кстати надо бы еще $зазаюзать, что поставит его в один ряд с такими чудесными языками как рнр и баш.
                    Ответить
                    • А причем тут Страуструп то?

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

                      Те же грабли - с теми же символами - и в жабе и жабоскрипте.

                      Да и на англиской клаве это всего лишь "лучше" а не "прекрасно". Как по мне, это и есть причина почему народ пытается постоянно языки изобрести в которых {} и () не совсем не используются.
                      Ответить
                      • >в жабе и жабоскрипте.
                        Ну не надо.

                        # которую я кстати забыл там нет.
                        * и & там означают ТОЛЬКО умножение и операцию И.
                        ~ означает ТОЛЬКО побитовое отрицание, а не деструктор
                        [] означают ТОЛЬКО массив/мапу, а не лямбды
                        : использовалось ТОЛЬКО в тернарнике, а не наследование, неймспейс, после public, private
                        Про то что могут означать в ерстах фигурные скобки вообще молчу

                        И наконец самое главное - в этих языках нельзя определить поведение этих значков для своих структур, ибо там нету перегрузки операторов.
                        Ответить
                      • > в которых {} и () не совсем не используются
                        Я, например, в таком случае посчитал бы частоты используемых символов, и для наиболее частых ввёл бы более короткие или удобные операторы.
                        Например, очевидно, что [] набирается гораздо быстрее и удобнее, но требуется реже, чем {}, так что вполне квадратные скобки можно оставить для блоков кода, фигурные - для всего остального.
                        Ответить
                        • > так что вполне квадратные скобки можно оставить для блоков кода, фигурные - для всего остального.
                          Так вот кто придумал TCL...
                          Ответить
                    • > Кстати надо бы еще $зазаюзать
                      gcc позволяет его юзать в именах:
                      for (int $i = 0; $i < 100; ++$i)
                          ...
                      Ответить
                  • > На европейских клавах буквы в других местах находятся.
                    Хм, то есть получается, что нам, русским, очень повезло, что буквы не влезли, и вместо натягивания ужа на ежа сделали кошерную отдельную раскладку 😉
                    Ответить
                    • Да. Повезло в том что стандартную раскладку списывали с американской клавы, а не с ISO.

                      В штатах к слову две раскладки: ISO и ANSI. Типичная (с прямоуголным Enter'ом) это ANSI. ISO почти никто не пользуется, но она есть.
                      Ответить
                      • Прямоугольный - это такой, который занимает всего один ряд? Не, не люблю такие. Самая жопа, правда, это с маленьким бекспейсом. А еще достает то, что вендоры лепят на Гипер свою херню какую-то, вместо того, чтобы, например, переложить ее куда-нибудь типа "паузы".
                        Ответить
                        • А по моим ощущениям, в таком расположении кнопок баланс Силы наиболее соблюдён.
                          http://preview.tinyurl.com/noy5k36
                          А то этот бекслэш куда только не пихуют. То бекспейс укоротят, то энтеру левую пипку отрежут. Или вообще с левым шифтом поселят (НЕНАВИСТЬ!!!1).
                          Ответить
                          • А мне попадались две совершенно ебанутых клавы - на одной выпилили insert, поставив вместо него delete на джве клетки высотой. А на второй повернули блок с ins/del/pgup и т.п. на 90 градусов.

                            Ноутовские же клавы уёбищны по определению, хоть внешнюю подключай 🙁

                            Походу если я и буду покупать ноут - то насру на все ТТХ, лишь бы клава была удобная и корпус и экран не глянцевые...
                            Ответить
                            • Я к ноуту сразу клаву купил, ибо -

                              1 удобнее
                              2 продлевает жизнь ноутбучной клаве (ибо внешнюю не всегда с собой потаскаешь)

                              С экраном согласен, а вот какой корпус мне все равно.
                              Ответить
                                • > То, что материнке - пизда, поц понять не в силах
                                  Слишком общее утверждение. Мне, кроме всего прочего, пришлось потусить в среде ремонтников железа, ну и соответствующие навыки и познания пришли. Последние три залитых ноута, которые приносили коллегам, отделались именно клавиатурой, потому что в них была специальная полость, в которой кроме клавиатуры и шлейфа ничего не было.
                                  Правда, стоит отметить, что пива не видел с 2012-го, обычно это чай, жидкость для снятия макияжа (адово воняет) или сок.
                                  Ответить
                              • > продлевает жизнь ноутбучной клаве
                                А мне как-то смешно стало. Всё же, не на столь долгий срок берут ноутбуки, чтобы за клавиатуру в этом смысле волноваться. Не понимаю я этого.
                                Такие размышления присущи скорее более старому поколению, выбирающему ноутбук на ближайшие 10-20 лет.

                                P.S. Но клавиатуру на нетбуке сам "исписал" и менял, уж очень привык к ней, из-за этого теперь на нормальных больших клавиатурах пальцы проваливаются.

                                > какой корпус мне все равно.
                                Желательно, чтобы края были максимально гладкие. Острые края обдираются месяца за три.
                                Ответить
                                • >Всё же, не на столь долгий срок берут ноутбуки, чтобы за клавиатуру в этом смысле волноваться.

                                  У меня знакомый клаву за год разьебал. Да и кофе фатально - лучше уж на внешнюю прольется.
                                  Ответить
                                  • А я в этом году зимой, возможно даже, сидя на ГК, задел таки кружку и "порадовал" ноутбук. Но быстро перевернул и протёр. Пишу с него же.
                                    Ответить
                            • > Ноутовские же клавы уёбищны по определению
                              > лишь бы клава была удобная и корпус и экран не глянцевые
                              "Собрались как-то при полной луне на кладбище главы всех производителей ноутбуков и, совершив жертвоприношения, поклялись никогда не выпускать ноутбуки с матовыми мониторами и полноценными клавиатурами" - актуальная адаптация одного анекдота про нормально открывающиеся упаковки сахара-рафинада 🙂

                              > на одной выпилили insert, поставив вместо него delete на джве клетки высотой
                              На моей работе есть две такие. Какое странное совпадение...
                              Ответить
                              • > Какое странное совпадение...
                                Оказалось, что Xom94ok и bormand давно работают вместе, но разговаривали друг с другом только на ГК.
                                Ответить
                            • >Походу если я и буду покупать ноут - то насру на все ТТХ
                              Просто не буду покупать ноут.
                              А если и буду, подключу отдельную клаву, и отдельный большой монитор.
                              Ответить
                              • > Просто не буду покупать ноут.
                                Ну я возьму только если жизнь заставит таскать его с собой по командировкам и т.п. Причем, скорее всего, самую бюджетную и дешевую модельку, чтоб не жалко угробить/потерять...

                                А дома ноут, имхо, нинужен. Гробик под столом в любом случае удобней, шустрее и дешевле.
                                Ответить
                                • Ну я вот в уневер с ним хожу - лабы сдать, в героев 3 на лекции поиграть...
                                  Ответить
                                • >если жизнь заставит таскать его с собой по командировкам и т.п.
                                  Само собой логично использовать ноут для тех целей, для которых он предназначен.
                                  >А дома ноут, имхо, нинужен.
                                  Понятное дело.
                                  Просто уже лет 5 как пошла дичайшая мода брать ноут для дома. И десктопу постоянно пророчат смерть. Это печально.

                                  А вот отчасти отголосок этой моды - хасвелл, с безусловно новыми, революционными концептами, но средненькой встроенной графикой (та что получше и вовсе впаивается в плату), низким энергопотреблением, и при этом небольшим ростом скорости числодробления. Всё это чисто ноутбучное.
                                  Ответить
                                • > нинужен
                                  * занимает мало места: мало поверхностей для протирания пыли, легко убрать в шкаф и освободить стол, если понадобится место
                                  * в течение дня можно несколько раз переползти в другую комнату
                                  * потребляет меньше энергии (любители игр всегда могут иметь стационарный компьютер, который будет греться только во время игр)

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

                                  Жду моды на док-станции. Принёс ноутбук, воткнул дома - получил доступ к сети, жёсткий диск с фильмами, монитор, колонки; воткнул на работе - получил три монитора, доступ к базам и клавиатуру; воткнул в лесу - получил чемодан с аккумуляторов на 2 дня.
                                  Ответить
                                  • > занимает мало места
                                    Внезапно, но моник и клава занимают меньше 😉 И клаву можно положить как удобно, а моник поставить на удобной для глаз высоте и расстоянии...

                                    Насчет энергопотребления - нынче гробы не так уж и много жрут.

                                    Ах да, ноуты еще и греются и шумят больше из-за хренового теплоотвода. У меня вот на проце комнатная температура почти всегда, и тишина т.к. кулер большой. Разгоняется разве что в самых современных гамах и на конвертации видео.
                                    Ответить
                                    • > греются и шумят
                                      Скоро не будут. Какой-нибудь ультрабук с заниженным хасвелловским i7 при малой загрузке или в режиме экономии энергии скорее всего будет тихим и прохладным.
                                      А вообще, надо искать свой идеал. У меня есть пример ноутбука (до 100Вт), который при 100% загрузки одного ядра шумит и греется, и пример (20-25Вт), когда замечаешь, что что-то тихонько шуршит - а это оказывается кто-то завис и уже час занимает одно-два ядра.
                                      Ответить
                                      • > скорее всего будет тихим и прохладным
                                        Только для ненапряжного потребления лёгкого контента. Пейсбук почитать, фильм посмотреть, пасьянс сложить.
                                        Если требуется значительная вычислительная мощь, то тут и трёх титанов в SLI не хватит, а они ещё не научились физику обманывать.
                                        Ответить
                                • > А дома ноут, имхо, нинужен. Гробик под столом в любом случае удобней, шустрее и дешевле.
                                  кто мешает иметь и то и то
                                  иногда хочется и сидеть, а иногда - лежать

                                  при этом мой гробик под столом шумит прилично (тем самым жену будит), а ноут в 99% времени даже свой бесшумный кулер не включает
                                  Ответить
                                  • >при этом мой гробик под столом шумит прилично (тем самым жену будит)
                                    А говорилось же - не разгоняй.
                                    Так там же целых 20% на халяву!!!
                                    Ответить
                                    • нет, вовсе по другой причине
                                      блядский жужжащий говнокулер на видеокарте амд
                                      да и всё старье, менять пора
                                      Ответить
                                        • 4 года вполне себе срок амортизации, если ты её эксплуатировал без ТО на высоких температурах, ну или с нехорошим БП

                                          моя видюха-пылесос требует полного разбора, чистки и обновления термопасты не реже чем раз в полгода-год, иначе начинает реветь даже при легких нагрузках
                                          Ответить
                                          • > моя видюха-пылесос
                                            А мне с последней видюхой всё-таки повезло - два больших и тихих кулера (twin frozr). На холостом режиме вообще молчат. Да и под нагрузкой звук комфортный, не воющий. Х.з. как оно будет дальше, но первый год продержалось, только пыль выдувал из нее.

                                            А вот предыдущая зато любила повыть... А до нее была ATI'шка с пассивкой, к которой летом приходилось вешать кулер, и которая через год тупо сдохла от тепловой деформации платы.
                                            Ответить
                                            • только водянка
                                              только хардкор

                                              но подводит блядский интел
                                              всё никак не выпустит платформу с ddr4
                                              сейчас бессмысленно покупать новый комп - он будет заведомо старый в ближайшие 2 года
                                              кстати, в т.ч. и видюхи - пусть устаканятся технологии вывода ultrahd 4k на комфортной частоте (а не @24Hz)
                                              Ответить
                                              • > он будет заведомо старый в ближайшие 2 года
                                                Дык за 3-4 года комп почти всегда превращается в морально устаревшую тыкву, и менять приходится весь комплект из материнки/памяти/проца/видяхи 🙁

                                                Апгрейдился я в прошлом году, так что пару лет подождать до ddr4 и новых сокетов - вполне терпимо.
                                                Ответить
                                                • > почти всегда превращается в морально устаревшую тыкву
                                                  Более того, чтобы угнаться за прогрессом, нужно бежать как минимум вдвое быстрее.
                                                  Ответить
                          • У меня почти такая же на ноуте за исключением того, что нету правой Гипер, а слева между Гипер и Мета есть еще кнопка для переключения верхнего ряда клавиш (справа всего три кнопки вместо четырех), что в теории должно было бы сделать правый Контрл юзабельным, но я все равно никогда им не пользуюсь. Маленький Ентр приводит к тому, что я иногда нажимаю Шифт вместо. Ну и вообще, плоские клавиатуры - не. Вобщем, пользуюсь отдельной клавиатурой, если есть возможность.

                            http://www.ideastorm.com/servlet/rtaImage?eid=087700000008YKo&feoid=Body& refid=0EM70000000PCSX
                            Ответить
              • >Страуструп в крестах <%/%>/and/or/etc не от хорошей жизни ввел.
                А это его стиль решения любых крестопроблем языка.
                Вот у нас есть сишные &&, || а вот есть понятные AND и OR, а чего выбирать? Давайте запилим оба!

                Это еще Дональд Кнут подметил:
                Whenever the C++ language designers had two competing ideas as to how they should solve some problem, they said, "OK, we’ll do them both".
                Ответить
                • > Это еще Дональд Кнут подметил:

                  Правильно. Разрабам давать выбор? Они же как школота! Сами не знают что делают!!

                  Много языков которые пытались переизобрести синтакс обломались и вымерли.

                  Много языков которые открыто ставили целью уменьшить набор инструментов разраба что бы уменьшить количество ошибок - либо вымерли либо сменили курс.
                  Ответить
                  • Ж.скрипт, Хаскель, Ява - только несколько примеров языков, которые ставили своей целью жестоко ограничить разработчика и тем не менее процветают. Чтобы не возникло сомнений:
                    - ж.скрипт - максимально убогая стандартная библиотека, отсутствие классов (и не надо рассказывать про то, что они там есть, Ейк говорит, что нету) как примеры.
                    - Хаскель - сознательно запрещены побочные эффекты, функции как объекты.
                    - Ява - намерено запрещена прямая работа с памятью, функции и переменные не-методы / поля классов.
                    Ответить
                    • про ж.скрипт и хаскель мнения у меня совсем нету, но вот жаба, извините, в последние релизы "распустилась". блин, даже closure'ы теперь поддерживает.

                      ЗЫ хаскель и побочные эффекты. мне всегда казалось что отсутствие побочных эффектов это черта функциональных языков, а не черта конкретного языка?
                      Ответить
          • >Какая интересная конструкция, надо бы запомнить.
            Правильно сделали в go - убрали точки с запятой и заставили всегда писать на блоке фигурные скобки .
            Чтобы люди не высирали вот такие "интересные конструкции".
            А потом сиди и думай какой же у неё сайд-эффект или жди когда оно жахнет.
            Ответить
          • > Мило, кроме этого проблем не вижу.
            Ну в самом SmartPtr<T> вроде бы все норм.

            А вот в с CallRec::Lock и CallRec::Unlock у них замутно получается. Там потом цикл выгребает все записи в табличке, у которых счетчик обнулился и удаляет их. Х.з., зачем так. Все равно объект после последнего Unlock'а уже не нужен, и можно сразу же его вынести... Хотя, может быть, я какую-то тонкость не понимаю...
            Ответить
    • А самое забавное - этот смартпоинтер совершенно не управляет жизнью CallRec'orda:
      inline void CallRec::Lock()
      {
          PWaitAndSignal lock(m_usedLock);
          ++m_usedCount;
      }
      
      inline void CallRec::Unlock()
      {
          PWaitAndSignal lock(m_usedLock);
          --m_usedCount;
      }
      Ответить

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

Семь раз отмерь — один отрежь, guest!

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


    8