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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    struct Bar {};
    
    class Foo {
    public:
        Bar& bar() const { return *bp; }
    
    private:
        Bar b;
        Bar * const bp = &b;
    };

    https://wandbox.org/permlink/7JPzrvslrUwbvREb

    Как называется данный говнопаттерн?

    Elvenfighter, 27 Апреля 2018

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

    −1

    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
    function running(html, clear) {
    	var	id, brk = true;
    	if(clear)
    		html.className = "";
    	if(html.className != "Ready") {
    		if(html.children.length > 0) {
    			if(!clear) {
    				for(id = 1; id < html.childNodes.length; ++ id) {
    					var	active = findActive(html.childNodes[id]);
    					if(active == null) {
    						brk = true;
    						break;
    					}
    					brk = active.className != "Ready" ? false : brk;
    				}
    			}
    			if(!brk && html.childNodes[0].value && html.childNodes[0].max) {
    				if(clear)
    					html.childNodes[0].value = 1;
    				else
    				if(html.childNodes[0].value <= html.childNodes[0].max) {
    					++ html.childNodes[0].value;
    					if(brk) {
    						for(id = 1; id < html.childNodes.length; ++ id)
    							findActive(html.childNodes[id], true);
    						html.parentNode.className = "";
    					}
    					return null;
    				} else {
    					html.parentNode.className = "Ready";
    					html.className = "";
    					return html;
    				}
    			}
    			if(!clear)
    				html.className = html.className != "Active" ? "Active" : "Ready";
    			return null;
    		} else {
    			if(!clear)
    				html.className = html.className != "Active" ? "Active" : "Ready";
    			return html;
    		}
    	}
    	return html;
    }

    Должен бегать по вложенным элементам и анимировать их.

    Alikberov, 27 Апреля 2018

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

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    using (var stream = File.Open(inFile, FileMode.Open))
    using (var reader = new StreamReader(stream))
    using (var csvReader = new CsvReader(reader, new Configuration
    {
    HeaderValidated = HeaderValidated,
    MissingFieldFound = null,
    PrepareHeaderForMatch = header =>
        CultureInfo.CurrentCulture.TextInfo.ToTitleCase(header)
    }))
    using (var outStream = File.Open(outFile, FileMode.CreateNew, FileAccess.Write, FileShare.Read))
    using (var writer = new StreamWriter(outStream))
    using (var csvWriter = new CsvWriter(writer))

    mazhuravlev, 26 Апреля 2018

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

    −6

    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
    81. 81
    82. 82
    83. 83
    84. 84
    /* Q: Can someone recommend a more elegant way to achieve these compile-time constants? */
    template <int> struct Map;
    template <> struct Map<0> {static const int value = 4;};
    template <> struct Map<1> {static const int value = 8;};
    template <> struct Map<2> {static const int value = 15;};
    
    template <int> struct MapInverse;
    template <> struct MapInverse<4> {static const int value = 0;};
    template <> struct MapInverse<8> {static const int value = 1;};
    template <> struct MapInverse<15> {static const int value = 2;};
    
    
    /* A: Another TMP approach for a linear search using C++11: */
    #include <type_traits>
    
    // === Types:
    // Usage:
    //    Function<Map<x1,y1>,Map<x2,y2>,...>
    template<int D, int R> struct Map { enum { domain=D, range=R }; };
    template<typename ...A> struct Function {};
    
    // === Metafunctions:
    // Usage:
    //    ApplyFunction<x,F>::value
    template<int I, typename M> struct ApplyFunction;
    // Usage:
    //    ApplyFunctionInverse<x,F>::value
    template<int I, typename M> struct ApplyFunctionInverse;
    
    // ==== Example:
    // Define function M to the mapping in your original post.
    typedef Function<Map<0,4>,Map<1,8>,Map<2,15>> M;
    
    // ==== Implementation details
    template<typename T> struct Identity { typedef T type; };
    template<int I, typename A, typename ...B> struct ApplyFunction<I, Function<A,B...> > {
       typedef typename
          std::conditional <I==A::domain
                           , Identity<A>
                           , ApplyFunction<I,Function<B...>> >::type meta;
       typedef typename meta::type type;
       enum { value = type::range };
    };
    template<int I, typename A> struct ApplyFunction<I, Function<A>> {
       typedef typename
           std::conditional <I==A::domain
                            , Identity<A>
                            , void>::type meta;
       typedef typename meta::type type;
       enum { value = type::range };
    };
    // Linear search by range
    template<int I, typename A> struct ApplyFunctionInverse<I, Function<A>> {
       typedef typename
           std::conditional <I==A::range
                            , Identity<A>
                            , void>::type meta;
       typedef typename meta::type type;
       enum { value = type::domain };
    };
    template<int I, typename A, typename ...B> struct ApplyFunctionInverse<I, Function<A,B...> > {
       typedef typename
           std::conditional <I==A::range
                            , Identity<A>
                            , ApplyFunctionInverse<I,Function<B...>> >::type meta;
       typedef typename meta::type type;
       enum { value = type::domain };
    };
    
    // ==============================
    // Demonstration
    #include <iostream>
    int main()
    {
       // Applying function M
       std::cout << ApplyFunction<0,M>::value << std::endl;
       std::cout << ApplyFunction<1,M>::value << std::endl;
       std::cout << ApplyFunction<2,M>::value << std::endl;
    
       // Applying function inverse M
       std::cout << ApplyFunctionInverse<4,M>::value << std::endl;
       std::cout << ApplyFunctionInverse<8,M>::value << std::endl;
       std::cout << ApplyFunctionInverse<15,M>::value << std::endl;
    }

    Элегантненько.
    s: https://stackoverflow.com/questions/26075969/compile-time-map-and-inverse-map-values

    gost, 25 Апреля 2018

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

    −6

    1. 1
    https://github.com/syn2cat/pidor

    dm_fomenok, 24 Апреля 2018

    Комментарии (4)
  6. Си / Говнокод #24192

    −10

    1. 1
    Вопрос

    Кто знает, как динамически выделить память, заполнить её нужными инструкциями, и исполнить этот код, не испытав при этом анальной боли и не получить Segmentation Fault ?

    yet_another_one_shit, 23 Апреля 2018

    Комментарии (19)
  7. Python / Говнокод #24190

    0

    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
    class Task:
    
        def set_activity( activity_method ):
            # проанализировать исходный код activity_method 
            # разделить цепочку команд на N частей
            pass
    
        def _get_parts_number():
            return N
    
        def _run_part( part_num ):
            # выполнить часть part_num
            pass
    
    
    def run(tasks):
    
        execution = True
        part_num = 0
        while execution:
            execution = False
            for task in tasks:
                if part_num < task._get_parts_number():
                    task._run_part( part_num )
                    execution = True
            part_num += 1

    Попросил коллегу реализовать concurrency многозадачность, он на питоне нагавнякал такое.

    ded_mazay, 21 Апреля 2018

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

    +1

    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
    public static class MyExtensions {
      private static Random _random = new Random(); 
      
      public static bool IsMnogo(this object value) {
        try {
          var n = double.Parse(value.ToString());
          return n > 9999999999;
        } catch {
          return true;
        }
      }
      
      public static bool IsDavno(this DateTime value) {
        return value < new DateTime(1900 + _random.Next(10, 90), 04, 17);
      }
    }

    mazhuravlev, 21 Апреля 2018

    Комментарии (4)
  9. bash / Говнокод #24183

    −2

    1. 1
    2. 2
    3. 3
    for word in {"Блять", "пишите", "красивые" ,"коды" ,"уёбки", ",", "ради", "энтузиазма", "и", "плодотворного", "труда", ",", "почитайте", "книжку", "сталина", "и", "поймёте", "как", "надо", "делать", "сруны", "говнокодерные!"}; do
        echo "$word"
    done

    хули?

    fuckercoder, 21 Апреля 2018

    Комментарии (8)
  10. Куча / Говнокод #24182

    0

    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
    <!DOCTYPE html>
    <html>
     <head>
      <title></title>
      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <link rel="stylesheet" href="css/style.css">
      <!--[if IE]>
       <script src="https://raw.githubusercontent.com/aFarkas/html5shiv/master/dist/html5shiv.min.js"></script>
      <![endif]-->
      <style>
       article, aside, details, figcaption, figure, footer,header,
       hgroup, menu, nav, section { display: block; }
      </style>
     </head>
     <body>
      <form id="form">
        <input type="date">
        <input id="inp" type="email" required>
        <input type="submit">
      </form><br>
      <section itemtype="http://data-vocabulary.org/Person" itemscope>
        <h1 itemprop="name">Mark Pilgrim</h1>
        <p><img itemprop="photo" src="http://www.example.com/photo.jpg" alt="[me smiling]"></p>
        <p><a itemprop="url" href="http://diveintomark.org/">weblog</a></p>
      </section>
      <progress id="pg" value="50" max="100">
        <br>
    
      <script>
        let forward = true;
        function pgset() {
          if(forward) {
            pg.value = +pg.value + 1;
            if(+pg.value == 100)
              forward = false;
          }
          else {
            pg.value = +pg.value - 1;
            if(+pg.value == 0)
              forward = true;
          }
        }
        //setInterval(pgset, 100); //нахуй!
      </script>
     </body>
    </html>

    Куда мне ещё говно скидывать??

    fuckercoder, 21 Апреля 2018

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