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

    +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
    // Вопрос: как сгенерировать в рантайме предупреждение от компилятора?
    // http://stackoverflow.com/q/4187967
    
       void f(int*p = nullptr)
        {
        if (!p)
    {
    //HERE I WOULD LIKE TO HAVE AN MSG THAT WOULD BE DISPLAYED DURING COMPILATION AS A WARNING POSSIBLY
    }
        }
    
    
    // Ответ: очевидно же, вызвать компилятор для соответствующего кода.
    // http://stackoverflow.com/a/4188155
    
    void f(int *p = nullptr) {
        if (!p) {
            system("gcc -Wall warning.c");
        }
    }

    Каков вопрос - таков ответ.

    Xom94ok, 01 Сентября 2013

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

    +64

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Товарищи, стоит задача: найти количество слов в строке.
     Автор  (http://programmersforum.ru/showthread.php?p=1269850#post1269850) просто делит строку по пробелам, затем
    подсчитывает кол-во слов.
    Я же,  говорю, что такой подход НЕПРАВИЛЕН,  т.к. в русском
    языке (да и не только) слова разделяются символами пунктуации, которые сами в состав слова не входят - следовательно, делить нужно по ним: 
     [code]" ' . , ! ?: ;  -  + <пробел> <табуляция> ( )[code]
     На меня сразу же наехали и поудаляли мои сообщения. Неужели я не прав?

    Баян все еще там: http://programmersforum.ru/showthread.php?p=1269850#post1269850

    Stertor, 28 Августа 2013

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

    +15

    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
    #include <cstdio>
    #include <cstdlib>
    #include <fstream>
    // #include <cstring>
    #include <string>
    using namespace std;
    
    string exec = "\"c:\\Program Files (x86)\\GnuWin32\\bin\\wget.exe\"";
    string root = "http://techno.org/electronic-music-guide/";
    const char* flist = "list.txt";
    
    void getFile(string name)
    {
    	string command = exec + " " + root + name;
    	system(command.c_str());
    }
    
    int main(int argc, char* argv[])
    {
    	ifstream fin(flist);
    	string name = "";
    
    	while(true)
    	{
    		if (fin.eof()) break;
    		getline(fin, name);
    		getFile(name);
    	}
    	return 0;
    }

    Суть такова: ваш покорный слуга копался в исходниках этого: http://techno.org/electronic-music-guide/ -- ради музыкальных лупов на рингтон. Узнал, что это реализовано swf-модулями, список которых он добыл после объединения кучи скриптов и сортировки в NPP. Осталось лишь найти способ загрузить эти файлы по списку.
    Но искать было лень, поэтому реализовано подручными средствами: мозгом, компилятором и случайно попавшимся wget'ом (FTW).

    ckopo, 28 Августа 2013

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

    +23

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    void main()
    {
    	// Откуда в программе баги берутся???
    	struct ╯°□°{}╯︵┻━┻;
    	// Понятия не имею.
    	// Код классный, имена переменных говорят сами за себя...
    	// Строк комментариев больше, чем строк кода...
    	// А баги всё-равно есть.
    	// КАК ЖЕ МЕНЯ ВСЁ ЭТО БЕСИТ!
    	(╯°□°)╯︵┻━┻;
    }

    В ответ цитате с баша:

    scala самый крутой язык, в нём можно столами кидаться
    def ┻━━┻ = {
    new Exception("ACHTUNG!")
    }
    throw ┻━━┻

    На С/С++ тоже можно столами кидаться и более красиво! Достаточно сохранение файла в unicode включить.

    Little-Horny, 25 Августа 2013

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

    +11

    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
    for(int i = posX-width, numBlock = 0; i < posX+width; i++)
        {
            for(int j = posY-height; j < posY+height; j++)
            {
            if(worldInfo[i][j] != air){
                switch(worldInfo[i][j])
                {
                case grass:
                    for(i = 0; i < 8; i++) tempCoord[numBlock*8+i] = texCoordList[0][i];
                break;
                case dirt:
                    for(i = 0; i < 8; i++) tempCoord[numBlock*8+i] = texCoordList[1][i];
                break;
                case rock:
                    for(i = 0; i < 8; i++) tempCoord[numBlock*8+i] = texCoordList[2][i];
                break;
                case water:
                    if(j != 35)
                    for(i = 0; i < 8; i++) tempCoord[numBlock*8+i] = texCoordList[3][i];
                    else
                    for(i = 0; i < 8; i++) tempCoord[numBlock*8+i] = texCoordList[4][i];
                break;
                case sand:
                    for(i = 0; i < 8; i++) tempCoord[numBlock*8+i] = texCoordList[5][i];
                break;
                }
                numBlock++;
                }
            }
        }

    Мое. Долго искал причину краша. Нашел. Если в кратце, тот тут идет присваивание текстурных коррдинат. Я оставлю это здесь, приятного аппетита!

    pelmenka, 24 Августа 2013

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

    +16

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    void setEnabled(bool enabled)
    {
        super.setEnabled(enabled)
        if (enabled) {
            objectsArray.disable();
            return;
        }
        enable();
    }

    ZevsVU, 23 Августа 2013

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    parallel_for(1, 6, [](int value) {
          wstringstream ss;
          ss << value << L' ';
          wcout << ss.str();
       });

    Вместо того чтобы заняться допиливанием С++11 для студии, макрософт решила написать своё параллельное апи и глупые примерчики к нему на тему вывести случайную перестановку элементов.

    LispGovno, 22 Августа 2013

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

    +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
    #include <iostream>
    
    using std::cout;
    using std::endl;
    
    auto power(double x, int n)-> double*;
    
    int main()
    {
    	void * c = power(5,2);
    
    	std::cout << *(double*)c << std::endl;
    
    	return 0;
    }
    
    auto power(double x, int n)-> double* 
    { 
    	double* result(new double(1.0));
    	for(int i = 1; i <= n; i++)
    	*result *= x;
    	return result;
    }

    taburetka, 21 Августа 2013

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

    +9

    1. 1
    // When F does not contain result_type, result_of<F(T1, T2, ..., TN)>::type is F::result<F(T1, T2, ..., TN)>::type when N > 0 or void when N = 0.

    http://www.boost.org/doc/libs/1_54_0/libs/utility/utility.htm#result_of
    > void when N = 0.
    Создатели boost::result_of решили, что если функция принимает 0 аргументов, то она не может ничего возвращать кроме void.

    LispGovno, 20 Августа 2013

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

    +20

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    Matrix matrix ( h, w );
    delete &h, &w;
    
    for ( int i = 0; i < h; i++ )
    {
        for ( int j = 0; j < w; j++ )
        {
            cout << "Введите элемент [" << i << ", " << j << "]: ";
            cin >> matrix[i][j];
        }
    }

    Найди ошибку...

    SkaN, 19 Августа 2013

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