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

    −33

    1. 1
    2. 2
    bool operator()(int x,int y)
    {return x<y;}

    Вторая часть) реально интересуются люди
    "надо два объекта моего класса сравнить, так?"
    ну, вообще жесть

    Запостил: Diss, 11 Июня 2012

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

    • Это компилируется?
      Ответить
      • По идее да. Если у нас будет экземпляр класса допустим в переменной a, то можно будет вызвать a(1,2).
        Ответить
        • сравнить-то нужно 2 экземпляра
          Ответить
          • >> Это компилируется?
            >По идее да.

            Про то, позволит ли этот код сравнить два экземпляра никто не говорит. Только про компилируемость.
            Ответить
        • >Если у нас будет экземпляр класса...

          @TarasB
          http://ideone.com/4R3Fn
          Ответить
          • > A->operator()(1,2)
            лол специально так написал?
            Ответить
            • А как ещё вызвать оператор несуществующего объекта?
              Ответить
              • http://ideone.com/a2sHz
                Так?
                Ответить
                • Там на 10 строке объект создаётся
                  Ответить
                  • Ну тогда можно вот так, чтобы без лишних переменных:
                    http://ideone.com/L94QB

                    P.S. Из исходников Qt 4.7 (в 4.8 причесали):
                    return static_cast<T>(reinterpret_cast<T>(0)->staticMetaObject.cast(object));
                    Ответить
                    • >Ну тогда можно вот так, чтобы без лишних переменных:

                      Рейинтрепрёт не красиво.
                      Достаточно стасик каста:
                      http://ideone.com/S4Iqk
                      Ответить
    • > Два объекта моего класса.
      Так он же int туда передает...
      Ответить
    • Возможное говноприменение:
      http://ideone.com/rzeOG
      Ответить
    • Не совсем понимаю, о чем идет речь. В качестве отдельно стоящей функции такое не скомпилируется вообще. Нельзя переопределить оператор для встроенного типа. В качестве же метода класса получаем банальную ничем не примечательную реализуцию функтора "меньше" для целого типа.
      Ответить

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