1. Лучший говнокод

    В номинации:
    За время:
  2. C++ / Говнокод #15763

    +14

    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
    typedef CStatisticsCalculator* (*TCalcCreator)(string&, const TUltimateStatDataPtr&);
    typedef std::map <CStatisticsCalculator::eCalcKind, boost::tuple<string, TUltimateStatDataPtr, TCalcCreator>> TCalcImplMap; 
    
    static TCalcImplMap CalcsMap;
    
    CStatisticsCalculator* CStatisticsCalculator::MakeNewCalculator(CStatisticsCalculator::eCalcKind Kind, 
                                                                    const TUltimateStatDataPtr& Data )
    {
        if (CalcsMap.empty())
        {
          CalcsMap[eCalcKind::eExtremeDealPrice] = 
            boost::make_tuple(string("be.commons.calculators.extreme_prices"), Data,
                   [](string& Name, const TUltimateStatDataPtr& Data_)->CStatisticsCalculator* 
                       { return new CExtremePricesCalculator(Name.c_str(), Data_);});
        
          CalcsMap[eCalcKind::eTurnOver] = 
            boost::make_tuple(string("be.commons.calculators.turnover"), Data,
                   [](string& Name, const TUltimateStatDataPtr& Data_)->CStatisticsCalculator* 
                       { return new CTurnOverCalculator(Name.c_str(), Data_);});
          
        };             
        
        auto i = CalcsMap.find(Kind);
        
        if (i == CalcsMap.end())
            return 0;
        
        auto& tpl = i->second;
        
        return tpl.get<2>()(tpl.get<0>(), tpl.get<1>());
    };

    Фабричный метод теперь выглядит так

    ABBAPOH, 16 Апреля 2014

    Комментарии (4)
  3. C++ / Говнокод #15731

    +14

    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
    string modify( const string & str )
    {
    	if( str.size() == 0 ) return "00";
    	if( str.size() == 1 ) return "0" + str;
    	return string( str.end() - 2, str.end() );
    }
    
    string modify4( const string & str )
    {
    	if( str.size() == 0 ) return "0000";
    	if( str.size() == 1 ) return "000" + str;
    	if( str.size() == 2 ) return "00" + str;
    	if( str.size() == 3 ) return "0" + str;
    	return string( str.end() - 4, str.end() );
    }
    
    string TimeISOFormat( time_t cur )
    {
    	char buf[32];
    	struct tm * timeinfo;
    	timeinfo = localtime ( &cur );
    	strftime(buf, 32, "%y", timeinfo);
    	string year(buf);
    	strftime(buf, 32, "%m", timeinfo);
    	string month(buf);
    	strftime(buf, 32, "%d", timeinfo);
    	string day(buf);
    	strftime(buf, 32, "%H", timeinfo);
    	string hour(buf);
    	strftime(buf, 32, "%M", timeinfo);
    	string minute(buf);
    	strftime(buf, 32, "%S", timeinfo);
    	string second(buf);
    	return modify4( year ) + "-" + modify( month ) + "-" + modify( day ) + "T" + modify( hour )+ ":" + modify( minute )+ ":" + modify( second );
    }
    
    string CurrentTimeISOFormat()
    {
    	time_t cur = CurrentTime();
    	char buf[32];
    	struct tm * timeinfo;
    	timeinfo = localtime ( &cur );
    	strftime(buf, 32, "%y", timeinfo);
    	string year(buf);
    	strftime(buf, 32, "%m", timeinfo);
    	string month(buf);
    	strftime(buf, 32, "%d", timeinfo);
    	string day(buf);
    	strftime(buf, 32, "%H", timeinfo);
    	string hour(buf);
    	strftime(buf, 32, "%M", timeinfo);
    	string minute(buf);
    	strftime(buf, 32, "%S", timeinfo);
    	string second(buf);
    	return modify4( year ) + "-" + modify( month ) + "-" + modify( day ) + "T" + modify( hour )+ ":" + modify( minute )+ ":" + modify( second );
    }
    
    time_t CurrentTime()
    {
    	time_t rawtime = 0;
    	time(&rawtime);
    	return rawtime;
    }

    brainiac, 11 Апреля 2014

    Комментарии (25)
  4. C++ / Говнокод #15578

    +14

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    BOOL shutdown_windows()
    {
        //...
        Sleep(1000);
        return FALSE; // Если к этому времени мы еще не закрыты - что-то пошло не так.
    }

    gost, 26 Марта 2014

    Комментарии (29)
  5. C++ / Говнокод #14358

    +14

    1. 1
    std::thread_fence(get_current_memory_order());

    LispGovno, 14 Января 2014

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

    +14

    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
    Node<maxCnt>   n[sizeY][sizeX], on;
    //...
    auto EachConvex = [](auto f, Body& b) 
    {
      for (auto g : b.g)
      {
        auto cp = Body::ConvexPtr(&b, g);
        auto bounds = cp.bounds();
        auto max = Rect(0, 0, sizeX - 1, sizeY - 1);
        auto out = max.intersect(bounds);
        auto b = max & bounds;
        for (auto x = b.left; x < b.right; ++i)
          for (auto y = b.top; x < b.bottom; ++i)
            f(n[y][x], cp);
        if (out)
          f(on, cp);      
      }
      return true;
    }

    LispGovno, 03 Декабря 2013

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

    +14

    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
    constexpr const char str1[] = "Anna";
    constexpr const char str2[] = "Denis";
    constexpr const char str3[] = "Vladimir";
    constexpr const char str4[] = "Alexey";
    
    constexpr const char *arr[] = { str1, str2, str3, str4 };
    
    #define GetMaxLenght(array) \
    constexpr unsigned char str_len(const char* const str) \
    {\
       return *str ? (1 + str_len(str + 1)) : 0;\
    }\
    \
    template <int index> \
    struct MaxLenght\
    {\
        static const int prev_size = MaxLenght<index-1>::max_size;\
        static const int cur_size = str_len(array[index]);\
        static const int max_size = cur_size > prev_size ? cur_size : prev_size;\
    };\
    \
    template <>\
    struct MaxLenght<-1>\
    {\
        static const int max_size = 0;\
    };\
    static const int AmountStr = sizeof(array) / sizeof(array[0]);\
    static const int array##_max_size = MaxLenght<AmountStr-1>::max_size;
    GetMaxLenght(arr);
    
    //   в *.cpp
    //   static_assert((arr_max_size == 8), "Error");

    http://habrahabr.ru/post/192736/

    LispGovno, 06 Сентября 2013

    Комментарии (22)
  8. C++ / Говнокод #13727

    +14

    1. 1
    2. 2
    struct Ziga : std::exception {};
    throw Ziga();

    Теперь вы знаете как кинуть зигу в C++ !!

    PSIAlt, 02 Сентября 2013

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

    +14

    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
    #include <iostream> 
     #include <conio.h> 
     #include <math.h> 
     using namespace std; 
    
     int main() 
     { 
     setlocale(0,"Russian"); 
     cout<<"Пишиш без a,b,c,приклад: 2 5 -12 або натиснеш на Enter и пишеш вниз,"<<endl; 
     cout<<"ПИШИ:"<<endl; 
     float D; 
     int repetare=0; 
     int a; 
     int b; 
     int c; 
     int x1; 
     int x2; 
     repetare; 
     { 
     while(repetare<100) 
     { 
     cout<<"a="; 
     cin>>a; 
     cout<<"b="; 
     cin>>b; 
     cout<<"c="; 
     cin>>c; 
     D=(b^2-(4*a*c))*(-1); 
     x1=(b-sqrt(D))/(2*a); 
     x2=(b+sqrt(D))/(2*a); 
     if (D>0) 
     { 
     cout<<"D="<<D<<endl; 
     cout<<"x1="<<x1<<endl; 
     cout<<"x2="<<x2<<endl; 
     cout<<"Имеет два кореня"<<endl; 
     } 
    
    
     if (D<0) 
     { 
     cout<<"D="<<D<<endl; 
     cout<<"Не имеет кореней"<<endl; 
     } 
     if(D=0) 
     { 
     cout<<"D="<<D<<endl; 
     cout<<"x1="<<x1<<endl; 
     cout<<"Имеет один корень"<<endl; 
     } 
     repetare++; 
     } 
     } 
     getche(); 
     return 0; 
     }

    С одного из сайтов игроделов. Просто оставлю это здесь

    pelmenka, 16 Августа 2013

    Комментарии (56)
  10. C++ / Говнокод #13501

    +14

    1. 1
    2. 2
    3. 3
    char paging_buf[ paging_len ];
    memset (paging_buf, 0, paging_len);
    ecryptAndWriteBlock (QByteArray (paging_buf, paging_len));

    Другие конструкторы посмотреть было лень...

    panter_dsd, 29 Июля 2013

    Комментарии (1)
  11. C++ / Говнокод #13483

    +14

    1. 1
    2. 2
    3. 3
    4. 4
    std::string buf_str = str;
    buf_str.erase( 0, strBlobFsParam.size() + 1 );
    buf_str.erase( buf_str.begin(), find_if(buf_str.begin(), buf_str.end(), not1( ptr_fun<int, int>(isspace) ) ) );
    buf_str.erase( find_if( buf_str.rbegin(), buf_str.rend(), not1( ptr_fun<int, int>(isspace) ) ).base(), buf_str.end() );

    trim головного мозга

    roman-kashitsyn, 26 Июля 2013

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