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

    +18

    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
    char* GetConnectionName(){return "";}
    //---
    char*  NetworkMgr::getErrorString(int id)
    {
        if(this->idValid(id))
    {
    return errors[id];
    }
    else
    {
    return "!!!unknown error!!!";
    }
    }

    Из тела одного большого класса, я конечно понимаю что строки хранятся не в стеке, но всеравно.

    Psionic, 10 Сентября 2012

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

    +45

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Matrix::~Matrix()
    {    
    	data = NULL;
    	delete [] data;
    };

    no comments

    coll3ctor, 07 Сентября 2012

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

    +82

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    bool isOperator( char c ) {
    	return c == '+'
    		|| c == '-'
    		|| c == '*'
    		|| c == '/'
    		|| c == '('
    		|| c == ')';
    }

    Fai, 05 Сентября 2012

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

    +17

    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
    char stmt[1024];
    int offset = 0;
    // ...
    for ( int count = 1 ; ; )
    {
        offset += sprintf(stmt + offset , "$%d" , count);
        count ++;
        if ( count > p_max )
        {
            break;
        }
        offset += sprintf(stmt + offset , ",");
    }

    Сборка строки вида "$1,$2,$3,$4" для запроса к PostgreSQL.

    Q: Где здесь с++, bormand?
    A: Проект написан на с++.

    bormand, 03 Сентября 2012

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

    +30

    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
    class MakeBARCODE
        {
            public static string MakeEAN13(long prefix, long code)
            {
                //В случае если префикс или код слишком большие то будет выдана ошибка:
                string result = "ERROR_TOOLONG";
                if ((prefix < 100) && (code < 10000000000))
                {
                    //Получаем строку символов (цифр).
                    long all_code = prefix * 100000000000 + code;
                    string nabor = all_code.ToString();
                    //Сумма по чётным позициям.
                    int count_chet = int.Parse(nabor[1].ToString()) + int.Parse(nabor[3].ToString()) + int.Parse(nabor[5].ToString()) + int.Parse(nabor[7].ToString()) + int.Parse(nabor[9].ToString()) + int.Parse(nabor[11].ToString());
                    //Сумма по нечётным позициям.
                    int count_nechet = int.Parse(nabor[0].ToString()) + int.Parse(nabor[2].ToString()) + int.Parse(nabor[4].ToString()) + int.Parse(nabor[6].ToString()) + int.Parse(nabor[8].ToString()) + int.Parse(nabor[10].ToString());
                    //Контрольная сумма и контрольный разряд.
                    int control_summ = count_chet * 3 + count_nechet;
                    int ostatok = control_summ % 10;
                    if (!(ostatok == 0))
                    {
                        ostatok = 10 - ostatok;
                    }
                    result = nabor + ostatok.ToString();
                }
                return result;
            }
        }

    Наткнулся сегодня в интернетах на алгоритм расчета контрольной суммы EAN.

    kovyl2404, 01 Сентября 2012

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

    +32

    1. 1
    static_cast<SomeOtherClass>(this)->SomeMethod();

    Чуваки лучше знают, что у них в this

    bazhenovc, 31 Августа 2012

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

    +26

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    result.push_back(TVector<2>
    				(
    					(A-√(D))/C,
    					(E-Line.K()*√(D))/C
    				));
    				result.push_back(TVector<2>
    				(
    					(A+√(D))/C,
    					(E+Line.K()*√(D))/C
    				));

    LispGovno, 31 Августа 2012

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

    +42

    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
    std::string loc =
    	( {
    		const char *str = "";
    
    		switch (location) {
    		case Net::HANDSHAKE_TIMEOUT:
    			str = _(" due to handshake timeout");
    			break;
    		case Net::RECV_HANDSHAKE:
    			str = _(" while waiting for handshake");
    			break;
    		case Net::HANDSHAKE_DATA:
    			str = _(" due to unsupported handshake data");
    			break;
    		case Net::HANDSHAKE_AUTH:
    			str = _(" while parsing handshake data");
    			break;
    		case Net::WAIT_DEVICE:
    			str = _(" while waiting for device");
    			break;
    		case Net::TRANSFER_DATA:
    			str = _(" while transferring data");
    			break;
    		}
    		str;
    	});

    Я хуею с юных оптимизаторов.

    gvy, 28 Августа 2012

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

    +31

    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
    #include <iostream>
    #include <tr1/functional>
    
    using namespace std::tr1::placeholders;
    
    struct I
    {
      int i;
    };
    
    struct S
    {
      int i;
      I ii;
    };
    
    int main()
    {
      std::tr1::function<I& (S&)> pi = std::tr1::bind(&S::ii, _1);
      std::tr1::function<std::tr1::reference_wrapper<I> (S&)> pri = std::tr1::bind(static_cast<std::tr1::reference_wrapper<I> (*)(I&)>(&std::tr1::ref<I>), std::tr1::bind(pi, _1));
      std::tr1::function<int& (S&)> psi = std::tr1::bind(&I::i, std::tr1::bind(&std::tr1::reference_wrapper<I>::get, std::tr1::bind(pri, _1)));
      S s = {1, {2}};
      std::cout << psi(s) << std::endl;
      psi(s) = 3;
      std::cout << psi(s) << std::endl;
      return 0;
    }

    Нашёл на RSDN, в теме о том, как получить указатель на член члена.

    suc-daniil, 28 Августа 2012

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

    +29

    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
    namespace NFlash
    {
            class TCommandMap
    	{
    	public:
    		typedef std::pair<NProtocolConsts::SCommands::E, pChar> TPair;
    	private:
    		std::vector<TPair> _commandMap;
    	public:
    		TCommandMap(void);
    		void appendCommand(TPair & Command);
    		void appendCommand(NProtocolConsts::SCommands::E, abstractString & Name);
    		const std::vector<TPair> & Names(void) const;
    		byte MaxCommandNameLength(void) const;
    		NProtocolConsts::SCommands::E GetCommandIndex(PChar Name) const;
    	};
    
    	void initCommandMaps(void);
    }

    Говногость, 24 Августа 2012

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