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

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    template<typename T>
    concept Addable = requires (T x) { x + x; }; // requires-expression
     
    template<typename T> requires Addable<T> // requires-clause, not requires-expression
    T add(T a, T b) { return a + b; }

    все решено.. перехожу писать код на "конецепты"

    ASD_77, 05 Мая 2020

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

    +1

    1. 1
    https://hackaday.com/2015/10/22/an-improvement-to-floating-point-numbers/

    Оказывается, тут уже пытались решить плававющую проблему с помощью плавающей длины составных частей плавающей проблемы: не влезает - увеличь мантиссу. Впрочем, то, что значения типа 1/3 всё равно не получится записать, никого не смутило.

    Fike, 25 Марта 2020

    Комментарии (91)
  4. Куча / Говнокод #25874

    0

    1. 1
    2. 2
    3. 3
    Официальный тред для каклосрача #2
    
    http://govnokod.ru/15804 - не открывается

    срать тут ↓

    guestinxo, 26 Сентября 2019

    Комментарии (91)
  5. Куча / Говнокод #25681

    +2

    1. 1
    https://youtu.be/CDqG6eGWo0I

    Давайте вспомним свой 94.

    3oJIoTou_xyu, 20 Июня 2019

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

    +56

    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
    #include <iostream>
    #include <thread>
    #include <list>
    #include <functional>
    #include <chrono>
    using namespace std;
    
    void outputToSomeContainer(int val, list<int>& result){
       result.push_back(val);
    }
    
    class async{
      list<thread> a;
    public:
      async(){}
      async(async&& a): a(move(a.a))
      {}
      void addTask(function<void()>&&f){
        a.emplace_back(move(f));
      }
      void wait(){
        for(auto&& i: a)
          i.join();
      }
    };
    
    async async_O_n_Sort(const list<char>& unsorted, function<void(int)> outputToContainer){
      async a;
      for(int i: unsorted)//O(n)
        a.addTask([i, outputToContainer](){this_thread::sleep_for(chrono::milliseconds(5+i*10));outputToContainer(i);});
      return a;
    }
    
    int main() {
      list<char> unsorted {1, 0, 6, 3, 4};
      list<int> sorted;
      auto a = async_O_n_Sort(unsorted, bind(outputToSomeContainer, placeholders::_1, ref(sorted)));
      cout<<"А мы веселые пельменья, мы похоже на варенья"<<endl;
      a.wait();
      for(int i: sorted)
          cout<<i<<endl;
      return 0;
    }

    Тред:

    http://www.gamedev.ru/flame/forum/?id=196521
    http://coliru.stacked-crooked.com/a/c317bee4dbe183ab

    laMer007, 05 Января 2015

    Комментарии (91)
  7. PHP / Говнокод #16282

    +162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    function wait($time)
    {
        $tmp_time = time();
        $i = $tmp_time;
        $time = $tmp_time + $time;
        while ($i < $time)
        {
            If (time() != $i) { $i++; }
        }
    }

    Автор сего творения явно не подозревал о существовании функции sleep

    phpcoder, 07 Июля 2014

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

    +152

    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 locate($info) {
        $name = sprintf("%s_%02d_%02d.jpg", $info['prefix'], $info['vol'], $info['page']);
        if (file_exists($name))
            return $name;
        $name = sprintf("%s_%02d_%03d.jpg", $info['prefix'], $info['vol'], $info['page']);
        if (file_exists($name))
            return $name;
        $name = sprintf("%s%d_%03d.jpg", $info['prefix'], $info['vol'], $info['page']);
        if (file_exists($name))
            return $name;
        $name = sprintf("%s%d_%03d-%03d.jpg", $info['prefix'], $info['vol'], $info['page'], $info['page']+1);
        if (file_exists($name))
            return $name;
        $name = sprintf("%s%d_%03dcover.jpg", $info['prefix'], $info['vol'], $info['page']);
        if (file_exists($name))
            return $name;
        return false;
    }

    Онлайн читалка манги. Эта функция ищет картинку по номеру тома/страницы.

    Как считаете, я сильно наговнокодила? ^_^

    kitty, 19 Апреля 2014

    Комментарии (91)
  9. Си / Говнокод #13470

    +142

    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
    // main.cpp
    #include <stdio.h>
    #include <stdlib.h>
    //...
    #include "tcp.h"
    //...
    #include "tcp.c"
    //...
    int main(int argc, char ** argv)
    {
    //...
    		receive_tcp_message(sock, &tcp_msg);
    		switch(tcp_msg.type)
    		{
    #include "cases.h"
    		default:
    			break;
    		}
    //...
    }

    Имелась небольшая утилита, написанная матёрым сишником. Имелся еще меньший шаблонный проект для таких утилит, написанный на плюсах с простым makefile. Таким вот нехитрым способом этот сишник влил первое во второе. Он не пользуется makefile, т.к. обычно пишет шелл-скрипт, собирающий весь проект. А еще он знает кучу анекдотов и историй, выпить не дурак и вообще отличный дядька.

    Xom94ok, 24 Июля 2013

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

    +38

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    #include <iostream>
     
    using namespace std;
     
    class Program
    {
        public:
            friend int main()
            {
                    return 0;
            }
    };

    Мой знакомый говорит, что его компилятор поддерживает Java\C#-нотацию точки входа таким образом. И ещё он говорит, что так должно компилироваться по стандарту.

    LispGovno, 07 Октября 2012

    Комментарии (91)
  11. Pascal / Говнокод #7101

    +110

    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
    unit HRTimer;
     
    interface
     
    uses Windows;
     
    type
      // --------------------- Класс - высокоточный таймер -------------------------
      THRTimer = class(TObject)
        constructor Create;
        function StartTimer: Boolean; // Обнуление таймера
        function ReadTimer: Double;   // Чтение значения таймера в миллисекундах
      private
        StartTime: Double;
        ClockRate: Double;
      public
        Exists: Boolean;    // Флаг успешного создания таймера
      end;
     
    var
      Timer: THRTimer; // Глобальая переменная. Создаётся при запуске программы
     
    { Фукнция высокоточной задержки.
     Delphi:
       Синтаксис: function HRDelay(const Milliseconds: Double): Double;
       Milliseconds: Double - задержка в миллисекундах (может быть дробной)
       Результат функции - фактически произошедшая задержка с погрешностью.
       Пример вызова функции: X:= HRDelay(100.0); или HRDelay(100.0);
     
     C++Builder:
       Синтаксис: double HRDelay(const double Milliseconds);
       Double Milliseconds - задержка в миллисекундах (может быть дробной)
       Результат функции - фактически произошедшая задержка с погрешностью.
       Пример вызова функции: double X = HRDelay(100.0); или HRDelay(100.0);}
    function HRDelay(const Milliseconds: Double): Double;
     
    implementation
     
    function HRDelay(const Milliseconds: Double): Double;
    begin
      Timer.StartTimer();
      repeat
        Result:= Timer.ReadTimer();
      until Result >= Milliseconds;
    end;
     
    { THRTimer }
     
    constructor THRTimer.Create;
    var
      QW: LARGE_INTEGER;
    begin
      inherited Create;
      Exists := QueryPerformanceFrequency(Int64(QW));
      ClockRate := QW.QuadPart;
    end;
     
    function THRTimer.StartTimer: Boolean;
    var
      QW: LARGE_INTEGER;
    begin
      Result := QueryPerformanceCounter(Int64(QW));
      StartTime := QW.QuadPart;
    end;
     
    function THRTimer.ReadTimer: Double;
    var
      ET: LARGE_INTEGER;
    begin
      QueryPerformanceCounter(Int64(ET));
      Result := 1000.0 * (ET.QuadPart - StartTime) / ClockRate;
    end;
     
    initialization
      Timer:= THRTimer.Create();
     
    finalization
      Timer.Free();
     
    end.

    классический шайзберг посреди майских роз (ну почти розы)

    bugmenot, 29 Июня 2011

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