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

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

    0

    1. 1
    https://pastebin.com/pk5bB1Y4

    Я вам покушать принес. Задача кратко и четко объяснить человеку, почему лучше обмазаться дотнетом чем винапи. Пока решил написать группе что следующий факультатив (на котором я должен разбирать их портянки) отменяется, а там что-нибудь придумаю. Две крайности - (new EchoServer).start() и вот это, что ты будешь делать.

    Fluttie, 18 Октября 2017

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

    +2

    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
    // p2.cpp : Defines the entry point for the console application.
    //   Язык Visual C++ 7.0
    //   Консольное приложение
    //   13.07.2016
    
    #include "stdafx.h"
    #include <conio.h>
    
    int aa (int, int, int);
    void ab (int);
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int a, b, c, d, e;
    	int f;
    
    	for (a = 0; a < 4; a++)
    		for (b = 0; b < 4; b++)
    			for (c = 0; c < 4; c++)
    				for (d = 0; d < 4; d++)
    					for (e = 0; e < 4; e++)
    					{
    						f = aa (1, a, 2);
    						f = aa (f, b, 3);
    						f = aa (f, c, 4);
    						f = aa (f, d, 5);
    						f = aa (f, e, 6);
    
    						if (f == 35)
    						{
    							printf ("((((1 "); ab (a);
    							printf ("2) "); ab (b);
    							printf ("3) "); ab (c);
    							printf ("4) "); ab (d);
    							printf ("5) "); ab (e);
    							printf ("6 = 35.\n");
    						}
    					}
    
    	getch ();
    	return 0;
    }
    
    
    int aa (int a, int b, int c)
    {
    	switch (b)
    	{
    		case 0: return a + c;
    		case 1: return a - c;
    		case 2: return a * c;
    		case 3: return a / c;
    	}
    
    	return 0;
    }
    
    void ab (int a)
    {
    	switch (a)
    	{
    		case 0: printf ("+ "); break;
    		case 1: printf ("- "); break;
    		case 2: printf ("* "); break;
    		case 3: printf ("/ "); break;
    	}
    }

    Задача: В написанном выражении ((((1 ? 2) ? 3) ? 4) ? 5) ? 6 вместо каждого знака ? вставить знак одного из четырёх арифметических действий: +, -, *, / так, чтобы результат вычислений равнялся 35.

    FrontlineReporter, 13 Июля 2016

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    template <typename T, typename ...Args>
    std::future<T> looped_thread::add_task(std::function<T(Args...)> func, Args ...args) {
        std::packaged_task<T()> task(std::bind(func,args...));
        std::future<T> fut = task.get_future();
        std::lock_guard<std::mutex> lock(_mutex);
        /*std::queue<std::function<void()>>*/ _tasks.push(/*std::packaged_task<T()> -> std::function<void()> ??*/);
        /*std::condition_variable*/ _cv.notify_one(); 
        return std::move(fut);
    }

    Задача: написать собственный пул потоков с блекджеком и шлюхами
    Подзадача: реализовать метод, добавляющий функтор в очередь команд и возвращающий std::future
    Что не так: std::packaged_task не конвертируется в std::future. Он не копируется, а поэтому:
    а. его нельзя передать через std::bind;
    б. при захвате через с++14 lambda capture expressions (аля

    auto f = [t = std::move(task)](){/**/};
    ) мы получаем t типа const std::packaged_task (мб это особенность mingw, конечно, но один фиг работать должно везде). Ни выполнить, ни мувнуть, ни скопировать. mutable в спецификации лямбды не помогает
    в. Примерно все те же самые проблемы возникают при попытке обернуть packaged_task в unique_ptr
    г. если чуть-чуть погуглить, можно найти кучу страшных решений через виртуальные методы, наследование, оборачивание packaged_task в shared_ptr и пр. Например: https://rsdn.ru/forum/cpp/5824551.all

    Но есть куда более простое и изящное решение. Угадаете?

    Antervis, 12 Мая 2016

    Комментарии (67)
  5. PHP / Говнокод #19690

    +2

    1. 1
    https://habrahabr.ru/post/280121/

    RestAPI в 2016 году. Отсосите, любители фреймворков и оттестированных библиотек

    loki90, 24 Марта 2016

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    #include <vector>
    
    template <typename T>
    void FreeAll( T & t ) {
        T tmp;
        t.swap( tmp );
    }

    3_dar, 20 Марта 2016

    Комментарии (67)
  7. JavaScript / Говнокод #17222

    +161

    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
    function kevinTheNumberMentioner(_){
      l=[]
      /* mostly harmless --> */ with(l) {
      	
      	//Sorry about all this, my babel fish has a headache today...
      	for (ll=!+[]+!![];ll<_+(+!![]);ll++) {
      	  lll=+!![];
      	  while (ll%++lll);
      	  //I've got this terrible pain in all the semicolons down my right-hand side
      	  (ll==lll)&&push(ll);
      	}
      	forEach(alert);
      	
      }
      
      //You're really not going to like this...
      return [!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]];
    }

    Открыл твитор, а там - это.

    http://arstechnica.com/information-technology/2014/11/holiday-reading-for-a-certain-sort-if-hemingway-wrote-javascript/

    Xom94ok, 30 Ноября 2014

    Комментарии (67)
  8. JavaScript / Говнокод #15663

    +154

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    var setLeadingZero = function(val) {
        if (val.toString().length == 1)
            return '0' + val;
        else
            return val;
    }

    "Но работает же"

    ElectricHeart, 04 Апреля 2014

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

    +12

    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
    #include <iostream>
    #include <functional>
     
    using namespace std;
     
    struct  T
    {
        int a;
        T(const T&):a(1){cout<<"copy_construct T"<<endl;}
        T():a(1){cout<<"construct T"<<endl;}
        ~T(){a=0;cout<<"destruct T"<<endl;}
        const T& operator=(const T&){cout<<"copy_ass T"<<endl;return *this;}    
    };
     
    struct M: public T{};
     
    void f(const T& fa)
    {
        cout<<"fa.a= "<<fa.a<<endl;    
    }
     
    int main() {
        f(std::cref(T()));
        cout<<endl;
        const T& b = T();
        cout<<"b.a= "<<b.a<<endl;
        cout<<endl;
        const T& a = std::cref(T());
        cout<<"a.a= "<<a.a<<endl;
        return 0;
    }

    http://ideone.com/BmHo9w
    Есть на этом ресурсе великий знаватель крестов и вот он меня уверял, что объект, на который ссылается ссылка - должен дожить до конца выхода ссылки из скоупа. Почему мы этого не наблюдаем? А знаватель? Ты меня прямо даже убедил, и тут такая подстава от тебя. a - не дожил до конца.

    LispGovno, 03 Декабря 2012

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

    +15

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    for(int y=0; y<height; ++y)
    {
         for(int x=0; x<width; ++x)
             b[y,x] = a[y,x];
    }

    LispGovno, 12 Ноября 2012

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

    +39

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    extern const TSafeFloat Pi;//Не использовать до входа в main!!! Возможно она ещё не инициализированна!!!
    //#define PI		3.14159265358979323846
    
    #ifndef M_PI
                             #define M_PI		3.14159265358979323846
    #endif

    Форматирование сохранено. Файл PiConsts.h

    HaskellGovno, 24 Августа 2012

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