1. 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)
  2. 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)
  3. 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)
  4. 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

    Комментарии (29)
  5. 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)
  6. 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)
  7. 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)
  8. 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)
  9. C++ / Говнокод #24729

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    #include <iostream>
    #include <stdio.h>
    using namespace std;
    
    int main() {
        ios::sync_with_stdio.h(false);
        cin.tie(0);
        cout.tie(0);
    }

    Чо за хуйня?

    LinuxGovno, 07 Сентября 2018

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

    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
    48. 48
    #include<iostream>
    #include<fstream>
    #include<vector>
    using namespace std;
    string rec(const string str, char c){return str;} //syntax error : missing ';' before identifier 'rec', ')' before 'const',  ')', ';' before '{', 
                                                                                    //'str' : undeclared identifier, 'rec': identifier not found
    
    void cer(){}                                                            //'cer' : local function definitions are illegal
    
    main(){                                                                  //'main': identifier not found
    
    	string s, d="Math.cos",a;                  //missing '}' before identifier 's',  ';' before identifier 's', 's', 'd', 'a' : undeclared identifier
    	
            ifstream fin;
    	vector<string> mas; // 'std::vector' : 'string' is not a valid template type argument for parameter '_Ty', 'mas' : unknown size
                                                  //'std::vector' : no appropriate default constructor available
    
    fin.open(mDocWrite); //'void std::basic_ifstream<char,std::char_traits<char>>::open(const char *,std::ios_base::open_mode)' : 
                                            //cannot convert argument 1 from 'nsAutoPtr<nsHtml5Tokenizer>' to 'const wchar_t *'
                         //No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
    
    //if (fin.is_open()) cout<<"1";else	cout<<"0";
    while(fin>>s)    //'s' : undeclared identifier, fatal error C1903: unable to recover from previous error(s); stopping compilation
    	{bool f=0;
    		for(int i=0; i<s.size(); ++i)
    			if (s[i]==d[0])
    				{
    					f=1;
    					for (int j=0; j<s.size()&&j<d.size(); ++j)
    						if (d[j]!=s[i+j]) f=0;
    					if (f)
    						{
    							a.clear();
    							for (int j=0; j<i; ++j)
    								a=a+s[j];
    							a=a+"0.5*";
    							for (int j=i; j<s.size(); ++j)
    								a=a+s[j];
    						}
    				}
    						if (f)	{mas.push_back("\n");mas.push_back(a);mas.push_back("\n");}
    			else mas.push_back(s);
    			s=rec(s,'0');
    	}
    	ofstream fout;
    fout.open(mDocWrite);
    for (int i=0; i<mas.size(); ++i) fout<<mas[i]<<"\t";
    }

    предполагалось, что код будет уменьшать cos угла в два раза, но при компиляции выдает ошибки, логику большинства которых не могу понять. Ошибки указал в коде. Подскажите, что не так.

    DrAli, 04 Сентября 2018

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