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

    −1

    1. 1
    std::function<CPlayer*> pickedUp = nullptr;

    Запостил: vadzz, 06 Июня 2018

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

    • Переведи на "PHP".
      Ответить
      • $pickedUp = null;
        Ответить
        • class std {
            static $pickedUp = null;
          }

          Но всё равно неэквивалентно. В "C++" можно разыменовать нулевой указатель (с печальными последствиями), а в "PHP" null - это специальный тип значения, который вызвать как функцию не получится.
          Ответить
          • $pickedUp() не крашнется что ли?
            Ответить
            • Проверь: https://ideone.com/tViC9j

              "PHP" ожидает, что в $pickedUp лежит либо ссылка на замыкание (когда $pickedUp=function(){something;}), либо строка с именем вызываемой функции. При других значениях фатальная ошибка.
              Ответить
        • Переведи ему на "C++", что лучше использовать:

          unset($pickedUp);
          Ответить
          • Перевёл. Проверьте кто-нибудь:
            template <class T>
            T *unset(T &var) {
                 var = (T)0;
                 return &var;
            }
            
            // ...
            
                std::function<CPlayer*> pickedUp;
                unset(pickedUp);
            Ответить
            • Исправил:
              template <class T>
              T unset(T &var) {
                   var = (T)0;
                   return var;
              }

              Я дурак Ы-ы-ы :)
              Ответить
              • я бы не стал так писать

                auto pickedUp = default<std::function<CPlayer*> >();

                // может быть улучшен используя SFINAE
                template <class T>
                T default() {
                return nullptr;
                }
                Ответить
    • pickedUp();
      Ответить

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