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

    +17

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    class Test
    {
      public:
        Test() : f(&Test::f0), f0(&Test::f1), f1( &Test::f2 ) {}
        float (  Test::* const Test::* const Test::* const f)();
      private:
        float ( Test::* const Test::* const f0)();
        float ( Test::* const f1)() ;
        float f2() { return 0; }
    };
    
    Test t;
    cout << (t.*(t.*(t.*(t.f))))();

    Запостил: LispGovno, 21 Февраля 2013

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

    • Yo dawg
      Ответить
    • Ожидал Super Cow Powers.
      http://goo.gl/xQfg4
      Ответить
    • decrypt pls
      Ответить
      • Гумно осваивает указатели на функции-члены.
        Ответить
        • class Test
          {
            public:
              Test() :  f( &Test::f0 ), _f0(&Test::f1_), f1_( &Test::f1 ), _f1( &Test::f2_ ), f2_(&Test::f2), _f2( &Test::f3 ) {}
              const float ( Test::* const (Test::* const Test::* const (Test::* const Test::* const (Test::* const f)() const )() const )() const )() const;
            private:
              const float ( Test::* const (Test::* const Test::* const (Test::* const Test::* const f0() const )() const )() const )() const { return _f0;}
              const float ( Test::* const (Test::* const Test::* const (Test::* const Test::* const _f0)() const )() const )() const;
              
              const float ( Test::* const (Test::* const Test::* const (Test::* const f1_)() const )() const )() const;
              const float ( Test::* const (Test::* const Test::* const f1() const )() const )() const { return _f1; }
              const float ( Test::* const (Test::* const Test::* const _f1)() const )() const;
            
              const float ( Test::* const (Test::* const f2_)() const )() const;
              const float ( Test::* const f2() const )() const { return _f2; }
              const float ( Test::* const _f2)() const;
              const float f3() const { return 0; }
          };
          
          ...
          const Test*& t = new Test;
          std::cout << (*t.*(*t.*(*t.*(*t.*(*t.*(*t.*((*t).f))()))()))())();
          Ответить
    • Я, наверно, никогда не пойму, кому и как может прийти в голову написать ТАКОЕ. Нет, правда, даже если б я специально попытался написать извращённый код, он бы выглядел проще...
      Ответить

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