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

    −5

    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
    class SNMPRemoteAgentSet
    {
    protected :
    	std::vector<SNMPRemoteAgent*> _agents;
    }
    
    void SNMPRemoteAgentSet::clear() {
    	while((int)_agents.size()) {
    		delete _agents[0];
    		_agents.erase(_agents.begin());
    	}
    }
    
    SNMPRemoteAgentSet::~SNMPRemoteAgentSet() {
    	clear();
    }

    Вот такой код нашёл в проекте. Таких говно-деструкторов в этом проекте ещё полно.

    SuperCellSky, 01 Октября 2018

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

    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
    #include <iostream>
    #include <algorithm>
    #include <functional>
    #include <map>
    #include <string>
    
    int main()
    {
        using namespace std::placeholders;
    
        std::map<std::string, int> karta;
        std::vector<std::string> goroda{ "foo", "bar", "foo" };
    
        std::for_each(goroda.begin(), goroda.end(), std::bind(
            static_cast<
                std::pair<decltype(karta)::iterator, bool>
                (decltype(karta)::*)(const decltype(karta)::key_type&, decltype(karta)::mapped_type&&)>
                    (&decltype(karta)::insert_or_assign),
            std::ref(karta),
            _1,
            std::bind(
                std::plus<decltype(karta)::mapped_type>(),
                1,
                std::bind(
                    static_cast<decltype(karta)::mapped_type&(decltype(karta)::*)(const decltype(karta)::key_type &)>
                    (&decltype(karta)::operator[]),
                    std::ref(karta),
                    _1))
        ));
        std::cout << "foo: " << karta["foo"] << "\nbar: " << karta["bar"] << '\n';
        
        return EXIT_SUCCESS;
    }

    #24802, переписанный в функциональном modern C++ стиле.
    Переделать бы ещё это под итераторы, чтобы двух обращений к мапе не было…

    gost, 24 Сентября 2018

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

    +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
    struct A { 
      virtual int transmogrify();
    };
     
    struct B : A {
      int transmogrify() override { new(this) A; return 2; }
    };
     
    int A::transmogrify() { new(this) B; return 1; }
     
    static_assert(sizeof(B) == sizeof(A));
    
    int main() {
      A i;
      int n = i.transmogrify();
      // int m = i.transmogrify(); // undefined behavior
      int m = std::launder(&i)->transmogrify(); // OK
      assert(m + n == 3);
    }

    Yo dawg, we heard you like kostyli, so we put our kostyli into your kostyli, so that you can use kostyli to support our kostyli!

    https://en.cppreference.com/w/cpp/utility/launder

    А если серьезно, мне еще не удалось соорудить пример, чтоб код с std::launder и без него работали по разному.

    Elvenfighter, 24 Сентября 2018

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

    +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
    #include <map>
    #include <stdio.h>
    #include <vector>
    using namespace std;
     
    int main() {
       map<string, int> karta;
       for (auto pituh : vector<string> {"foo", "bar", "foo"}) {
        	karta[pituh]++;
       }
       printf("foo: %d\nbar: %d\n", karta["foo"], karta["bar"]);
       return 0;
    }

    <?php

    $karta = [];
    foreach (["foo", "bar", "foo"] as $pituh) {
    if (!isset($karta[$pituh])) {
    $karta[$pituh] = 0;
    }
    $karta[$pituh]++;
    }
    echo "foo: {$karta['foo']}\nbar: {$karta['bar']}\n";


    Поэтому за что я?

    guestinxo, 24 Сентября 2018

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    template <class F, class G>
    auto operator*(F&& f, G&& g) -> decltype(auto) {
    	return [=](auto ...args) { return f(g(args...)); };
    }

    Композиция функций

    IBets, 21 Сентября 2018

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

    −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
    #include <iostream>
    using namespace std;
    int main()
    {	
           bool s;
    	if (s == true) {
    		return true;
    	}
    	if (s == false) {
    		return false;
    	}
    	else {
    		return !true && !false;
    	}
    }

    Настоящие программисты пишут вот так!

    Verenick, 19 Сентября 2018

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

    −3

    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
    #include "pch.h"
    #include <iostream>
    #include <math.h>
    
    using namespace std;
    
    int main()
    {
    	setlocale(LC_ALL, "rus");
    	int a,b,c;
    	double X1, X2;
    	cout << "Введите число a:" << endl;
    	cin >> a;
    	cout << "Введите число b:" << endl;
    	cin >> b;
    	cout << "Введите число c:" << endl;
    	cin >> c;
    	cout << "Получилось выражение:\n" <<a<<"x^2+"<<b<<"x+"<< c <<"=0"<<endl;
    	cout << "Дискриминант равен:\nD=b^2*4*a*c="<< (b*b)*4*a*c << endl;
    	X1 = (-b + abs(b*b))/2*a;
    	X2 = (-b - abs(b*b))/2*a;
    	cout<<"Корни уравнения равны:"<<endl;
    	cout << "X1=" << X1 << endl;
    	cout << "X2=" << X2 << endl;
    }

    Прога для нахождения корней квадратного уравнения. (Я просто новичок которому нехер делать).

    MaRLiN, 18 Сентября 2018

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

    −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
    NTSTATUS resize(size_t new_capacity)
    {
        NT_ASSERT(new_capacity >= m_size);
        if constexpr (std::is_pod_v<T>) {
            T *new_array = static_cast<T*>(KReallocate(m_size, new_capacity, sizeof(T), m_array, POOL, TAG));
            if (!new_array) {
                return STATUS_NO_MEMORY;
            }
            m_capacity = new_capacity;
            m_array = new_array;
        } else {
            T *new_array = static_cast<T*>(KAllocate(new_capacity, sizeof(T), POOL, TAG));
            if (!new_array) {
                return STATUS_NO_MEMORY;
            }
             for (size_t i = 0; i < m_size; i++) {
                new (&new_array[i]) T(std::move(m_array[i]));
                m_array[i].~T();
            }
            KmdfDeallocate(m_array, TAG);
            m_capacity = new_capacity;
            m_array = new_array;
        }
    
        return STATUS_SUCCESS;
    }

    gost, 17 Сентября 2018

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

    −3

    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
    #include "pch.h"
    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    int main()
    {
    	int b, c, d;
    	setlocale(LC_ALL, "rus");
    	cout << "Игра:Надо бы похавать. )) \nУправление:клавиши 1,2,Ентер. (Мышью ничего не работает!!)\n\n" << endl;
    
    	system("pause");
    	cout << "\n\n\n\nТы просыпаешся в 2 часa дня\n" << "В принципе, ничего нового, ведь ты опять играл в комп допоздна" << endl;
    	cout << "Понятное дело, что ты проголодался !\n" << "Выбери, куда ты пойдешь покушать:\n\n" << endl;
    	cout << "1-поесть дома (Готовишь ты хреново!)\n2-пойти в Макдак\n";
    	cin >> (b);
    	switch (b) {
    	case 1:
    	{
    		cout << "Ты решил поесть дома, у тебя есть два варианта:\n1-Пожарить яишенку.\n2-Нарезать салат.\n\n";
    		cin >> (c);
    		switch (c) {
    		case 1: {
    			cout << "Ты скушал яишенку с колбаской,это был не пик вкусности, но ты доволен.\n(ХОРОШАЯ КОНЦОВКА)\n\n\n\n\n" << endl;
    			break;
    		}
    
    		case 2: {
    			cout << "Ты нарезал салатик из помидоров,огурцов,сыра и колбасы, сьел это и помер\nпотому что у тебя была алергия на сыр.Врачи ничем не смогли помочь." << endl;
    			cout << "(ПЛОХАЯ КОНЦОВКА)\n\n\n\n";
    			break;
    		}
    				break;
    		}
    		break;
    	case 2: {
    		cout << "Ты решил пойти в макдак, что закажешь :\n1-сет из колы,бургера и картошки!\n2-сет из сока,мороженого и твистера!\n\n" << endl;
    		cin >> (d);
    		switch (d) {
    		case 1: {
    			cout << "Ты вкусно поел, это было очень вкусно, настолько что ты стал чуть ли не каждый\nдень есть эту еду. Спустя год ты умер от Орбидного ожирения!!\n(ПЛОХАЯ КОНЦОВКА)\n\n\n\n\n\n\n";
    			break;
    		}
    		case 2: {
    			cout << "Ты вкусно поел. когда ты ел к тебе подошла девушка с таким же набором еды\n вы хорошо разговорились, начали общатся. Через время вы начали встречатся!\n(ХОРОШАЯ КОНЦОВКА)\n\n\n\n\n\n" << endl;
    			break;
    		}
    				break;
    		}
    
    	}
    
    	}
    
    	}
    
    	system("pause");
    
    }

    Небольшой текстовый квест с 4-мя концовками )) Открой все 4. удачи!!

    MaRLiN, 15 Сентября 2018

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

    +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
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    #include <bits/stdc++.h> 
    using namespace std; 
    int main(){
    int x1,y1,x2,y2; 
    string xy1,xy2;
    cin>>xy1>>xy2;
    if (xy1[0]=='A')x1=1;
    if (xy1[0]=='B')x1=2;
    if (xy1[0]=='C')x1=3;
    if (xy1[0]=='D')x1=4;
    if (xy1[0]=='E')x1=5;
    if (xy1[0]=='F')x1=6;
    if (xy1[0]=='G')x1=7;
    if (xy1[0]=='H')x1=8;
    
    if (xy1[1]=='1')y1=1;
    if (xy1[1]=='2')y1=2;
    if (xy1[1]=='3')y1=3;
    if (xy1[1]=='4')y1=4;
    if (xy1[1]=='5')y1=5;
    if (xy1[1]=='6')y1=6;
    if (xy1[1]=='7')y1=7;
    if (xy1[1]=='8')y1=8;
    
    if (xy2[0]=='A')x2=1;
    if (xy2[0]=='B')x2=2;
    if (xy2[0]=='C')x2=3;
    if (xy2[0]=='D')x2=4;
    if (xy2[0]=='E')x2=5;
    if (xy2[0]=='F')x2=6;
    if (xy2[0]=='G')x2=7;
    if (xy2[0]=='H')x2=8;
    
    if (xy2[1]=='1')y2=1;
    if (xy2[1]=='2')y2=2;
    if (xy2[1]=='3')y2=3;
    if (xy2[1]=='4')y2=4;
    if (xy2[1]=='5')y2=5;
    if (xy2[1]=='6')y2=6;
    if (xy2[1]=='7')y2=7;
    if (xy2[1]=='8')y2=8;
    if  ((abs(x1-x2)==1&&abs(y1-y2)==0)||
    (abs(x1-x2)==0&&abs(y1-y2)==1)||
    (abs(x1-x2)==1&&abs(y1-y2)==1)||
    (y1==y2||x1==x2||abs(x1-x2)==abs(y2-y1))||
    (y1==y2||x1==x2)||
    (abs(x1-x2)==abs(y2-y1))||
    (abs(x1-x2)==1&&abs(y1-y2)==2)|| 
    (abs(x1-x2)==2&&abs(y1-y2)==1)|| 
    (x1==x2&&((y1==2&&y2==y1+2)||(y1>=2&&y2==y1+1))))
    {
    //king
    if(abs(x1-x2)==1&&abs(y1-y2)==0)
    cout<<"King\n";
    else if(abs(x1-x2)==0&&abs(y1-y2)==1)
    cout<<"King\n";
    else if(abs(x1-x2)==1&&abs(y1-y2)==1)
    cout<<"King\n";
    //queen
    if(y1==y2||x1==x2||abs(x1-x2)==abs(y2-y1))
    cout<<"Queen\n";
    //rook
    if(y1==y2||x1==x2)
    cout<<"Rook\n";
    //bishop
    if (abs(x1-x2)==abs(y2-y1))
    cout<<"Bishop\n";
    //knight
     if(abs(x1-x2)==1&&abs(y1-y2)==2) 
    cout<<"Knight\n";
    else if(abs(x1-x2)==2&&abs(y1-y2)==1) 
    cout<<"Knight\n";
    //pawn
    if(x1==x2&&((y1==2&&y2==y1+2)||(y1>=2&&y2==y1+1)))
    cout<<"Pawn\n";
    }
    else cout<<"Nobody";
    }

    Нашел его в старом добром ACMP и он работает

    sulka, 13 Сентября 2018

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