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

    +24

    1. 1
    int f(int = 7, int * = nullptr, int (*(*)(double))[3] = nullptr){

    http://ideone.com/BcZ7Ja

    LispGovno, 02 Февраля 2014

    Комментарии (36)
  2. Java / Говнокод #14470

    +64

    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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    balance2N(nodeGet(0), nodeGet(0).getLine(0).getNodeConnectedWith(nodeGet(0)));
    
    class Node {
        private ArrayList<Line> children = new ArrayList<Line>();
        public Line getLine (int index) {
            return children.get(index);
        }
    }
    
    class Line {
        private Node[] parents = new Node[2];
        public Node getNodeConnectedWith(Node nodeA) {
                if (parents[0] == nodeA) {
                    return parents[1];  //return node another from this node (node on the other side)
                } else {                //if    parents[1] == nodeA     equals  !(parents[0] == nodeA)
                    return parents[0];
                }
            }
    }

    Метод balance2N делает что-то с двумя нодами.

    energetix_user, 02 Февраля 2014

    Комментарии (41)
  3. Куча / Говнокод #14466

    +127

    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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    Привет! 
    Сообщество, посмотри C++11 код, а не ошибочно ли выбраны символы для обжатия шаблонных параметров. 
    <сказка> 
    
    Итак, жили-были две функции: 
    
    void func0(bool=false); //ok
    void func1(bool=8>=8);  //ok
    
    И на лексемы разбирались они успешно и без конфликтов.
    
    И был у них друг помошник: 
    
    #define F(TYPE,NAME,VALUE)TYPE NAME=VALUE;
    F(int,value,0);
    #undef F
    
    Лексер и его на лексемы разбирал.
    
    Но пришли злые шаблоногородители и по нагородили шаблонов...
    
    Нагородили шаблонные структуры типа таких: 
    
    template<bool>struct a{constexpr a(bool){}};
    
    и переменные типа таких: 
    
    a<0> var=0;
    map<int,int> m;
    
    А лексер всё стоял и терпел. Он всё успешно на лексемы разбирал.
    
    Но радилась как-то в коде функция типа такой: 
    
    void func2(a<0>=8>=8); // fail
    
    И не выдержал лексер: 
    
    prog.cpp:4:18: warning: comparisons like ‘X<=Y<=Z’ do not have their mathematical meaning [-Wparentheses]
     void func2(a<0>=8>=8); // fail
                      ^
    prog.cpp:4:12: error: parse error in template argument list
     void func2(a<0>=8>=8); // fail
                ^ 
    
    Не понял он что хотят от него. 
    
    void func2(a<0> = 8>=8 ); // это?
    void func2(a< 0>=8 > =8); // или это?
    
    ... да как же вам объяснить? 
    А давайте я заменю "<" на "{", а ">" на "}".
    
    И не понял лексер, что хотят от него. 
    
    void func2(a{0}=8>=8); // это?
    void func2(a{0>=8}=8); // или это?
    
    А потом уродилось в коде ещё и это: 
    
    #define F(TYPE,NAME,VALUE)TYPE NAME=VALUE;
    F(a<0>,var,0); //ok
    #undef F
    
    Но лексер терпел.
    
    Терпел, да не выдержал. 
    
    #define F(TYPE,NAME)TYPE NAME;
    F(map<int,int>,m); //fail
    #undef F
    
    Решил он забить на дело гиблое: 
    
    prog.cpp:7:17: error: macro "F" passed 3 arguments, but takes just 2
     F(map<int,int>,m); //fail
                     ^
    И ужёл он к другим стандартописателям. 
    </сказка> 
    tags: черновик, сказка, С++11, шаблоны, макросы, лексер

    Символы для обжатия параметров шаблонов выбраны ошибочно?

    LispGovno, 02 Февраля 2014

    Комментарии (39)
  4. PHP / Говнокод #14464

    +158

    1. 1
    empty ( $php->p['h']{'p'}{'p'}['h']->p );

    __proto__, 01 Февраля 2014

    Комментарии (40)
  5. JavaScript / Говнокод #14463

    +154

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    function login()
    	{
    	$.ajax({
    		type:'post',
    		url:'index.php/main/login',
    		data:{x:1},
    	 success:function(data){
                   $("body").html(data);
                }
              });
         }

    Функция из single page приложения

    devalentino, 01 Февраля 2014

    Комментарии (18)
  6. C++ / Говнокод #14459

    +15

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    #define TEST_MODE ON
    
    ...
    
    #ifdef TEST_MODE
    #    include "fake_singelton.h"
    #else
    #    include "work_singelton.h"
    #endif

    оттуда

    LispGovno, 01 Февраля 2014

    Комментарии (65)
  7. C++ / Говнокод #14458

    +20

    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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    Ini ini(m_serviceProvider);
            if( ini.load( gameInputStream ) == false )
            {
                LOGGER_ERROR(m_serviceProvider)("StartupConfigLoader::loadGame_ Invalid load game settings '%s'"
                    , _gameIniPath.c_str()
                    );
    
                return false;
            }
    
        IniUtil::getIniValue( ini, "Project", "Name", _settings.projectName, m_serviceProvider );
        IniUtil::getIniValue( ini, "Project", "Company", _settings.companyName, m_serviceProvider );
        IniUtil::getIniValue( ini, "Project", "Codename", _settings.applicationSettings.projectCodename, m_serviceProvider );
        IniUtil::getIniValue( ini, "Project", "Version", _settings.applicationSettings.projectVersion, m_serviceProvider );
        IniUtil::getIniValue( ini, "Locale", "Default", _settings.defaultLocale, m_serviceProvider );
        IniUtil::getIniValue( ini, "Game", "ContentResolution", _settings.applicationSettings.contentResolution, m_serviceProvider );     
        IniUtil::getIniValue( ini, "Game", "FixedContentResolution", _settings.applicationSettings.fixedContentResolution, m_serviceProvider );
        IniUtil::getIniValue( ini, "Game", "PersonalityModule", _settings.personalityModule, m_serviceProvider );
        IniUtil::getIniValue( ini, "Game", "AlreadyRunning", _settings.alreadyRunning, m_serviceProvider );
        IniUtil::getIniValue( ini, "Game", "WindowModeCheck", _settings.applicationSettings.windowModeCheck, m_serviceProvider );
        IniUtil::getIniValue( ini, "Window", "Size", _settings.applicationSettings.windowResolution, m_serviceProvider );
        IniUtil::getIniValue( ini, "Window", "Bits", _settings.applicationSettings.bits, m_serviceProvider );
        IniUtil::getIniValue( ini, "Window", "Fullscreen", _settings.applicationSettings.fullscreen, m_serviceProvider );
            IniUtil::getIniValue( ini, "Window", "MaxFPS", _settings.maxfps, m_serviceProvider );
        IniUtil::getIniValue( ini, "Window", "VSync", _settings.applicationSettings.vsync, m_serviceProvider );

    Это оттуда уже другой. Они все сговорились что-ли? Ынтерпрайз головного мозга.
    PS: boost::property_map не осилил.

    LispGovno, 31 Января 2014

    Комментарии (76)
  8. PHP / Говнокод #14457

    +161

    1. 1
    if ($pathRelative && $relativePath) {

    Взято из либы Google DFP

    Lowezar, 31 Января 2014

    Комментарии (17)
  9. C++ / Говнокод #14456

    +4

    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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    struct ServiceProvider1
    {
      ServiceProvider1(Service2& service1, Service3& service2, Service3& service3, Service4& service4, Service5& service5):
        service1(service1),
        service2(service2),
        service3(service3),
        service4(service4),
        service5(service5),
     {}
    
      fun<Service1> service1;//fun - функциональный объект (operator() перегружен), хранящий ссылку на сервис, чтобы не писать кроме членов ещё и две функции - константную и не константную.
      fun<Service2> service2;
      fun<Service3> service3;
      fun<Service4> service4;
      fun<Service5> service5;
    };
    
    class Service1
    {
    public:
      template<class ServiceProvider> 
      Service1(ServiceProvider serviceProvider):
        service2(serviceProvider.service2()),//Ссылки на сервисы получаем.
        service3(serviceProvider.service3()),
        myMember1(serviceProvider),//эти мемберы сами внутри воспользуются провайдерами зависимостей
        myMember2(serviceProvider),
        myMember3(),
        myMember4(myServiceProviderGeter<ServiceProvider>()),//Этому мембору понадобились новые зависимости, часть тех, что хранятся в ServiceProvider, а часть новых среди членов Service1.
        myMember5(myServiceProviderGeter<ServiceProvider>())
        myMember6(myServiceProviderGeter<ServiceProvider>())
      {}
      ...
    private:
      template<class BaseServiceProvider>
      struct MyServiceProvider: BaseServiceProvider
        {
           MyServiceProvider(BaseServiceProvider baseServiceProvider, Service6& service6, Service7& service7):
             BaseServiceProvider(baseServiceProvider),
             service6(service6),
             service7(service7)
           {}
           
           fun<Service6> service6;
           fun<Service7> service7;
        };
    
      template<class BaseServiceProvider> MyServiceProvider<BaseServiceProvider> myServiceProviderGeter(BaseServiceProvider baseServiceProvider) const
      {
        return MyServiceProvider<BaseServiceProvider>(baseServiceProvider, this->myMember2, this->myMember3);
      }
    };
    ...
    ServiceProvider1 sp(...);
    Servive1 service1(sp);
    Service8 service8(sp);
    Service9 service9(sp);
    ...

    оттуда

    LispGovno, 31 Января 2014

    Комментарии (146)
  10. Python / Говнокод #14455

    −94

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    def f(l = []):
            l.append(len(l))
            return l
    f()
    f()
    print f()

    Есть мнения что выведет?
    http://ideone.com/Q6Oc2I

    laMer007, 31 Января 2014

    Комментарии (35)