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

    −1

    1. 1
    2. 2
    3. 3
    ID_tables_vec[arg1.get_extra_value()]
         [ID_tables_vec[arg1.get_extra_value()][arg1.get_value()].get_value()]
         .set_name(tmp_str);

    Это один оператор. Из кода интерпретатора модельного языка (задание в универе). Периодически в коде начали возникать подобные вещи, связанные с особенностями таблиц имен. Буду рад, если кто-то предложит эквивалентные, но более читаемые конструкции.

    DrCodeMonkey, 07 Мая 2016

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    DWORD GetDriveSpaceMB(char* drive)
    {
        DWORD nsc, nbs, nfc, ncu;
        double FreeB;
        DWORD FreeM;
        string diskname = format_x("%s:\\",drive);
        GetDiskFreeSpace((char*)diskname.c_str(), &nsc, &nbs, &nfc, &ncu );
        FreeB = (double) nfc * (double) nsc * (double) nbs;
        FreeM = FreeB / 1024.0 / 1024;
        return FreeM;
    }

    lomer, 07 Мая 2016

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

    +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
    #include <iostream>
        using namespace std;
         
        struct One
        {
          bool operator==(const One &) { cout << "hello from One!" << endl; return true; }
          bool operator==(unsigned int) { cout << "hello from One!" << endl;  return true; }
        };
        One operator "" x( unsigned long long int ) { return One{}; }
        One operator "" xMAGICK( unsigned long long int ) { return One{}; }
         
        int main()
        {
          cout << (0xMAGICK == 0x);
         
          return 0;
        }

    http://ideone.com/gGYFce
    Расширяем множество шестнадцатеричных цифр при помощи UDL
    В C++17 осталось разрешить перегрузку операторов встроенных типов - вот тогда можно будет оторваться по-полной!

    gost, 05 Мая 2016

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

    −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
    //Сериализовать структуру со статической информацией о её полях
    template<typename T, typename T0, typename ...Args> void SerializeBinary(
    	const Tuple<T0 T::*, Args T::*...>& members, const T& src, void*& dst)
    {
    	SerializeBinary(src.*members.first, dst);
    	SerializeBinary(members.next, src, dst);
    }
    
    template<typename T, typename T0> void SerializeBinary(
    	const Tuple<T0 T::*>& members, const T& src, void*& dst)
    {
    	SerializeBinary(src.*members.first, dst);
    }
    
    //Десериализовать структуру со статической информацией о её полях
    template<typename T, typename T0, typename ...Args> void DeserializeBinary(
    	const Tuple<T0 T::*, Args T::*...>& members, T& dst, const void*& src)
    {
    	DeserializeBinary(dst.*members.first, src);
    	DeserializeBinary(members.next, dst, src);
    }
    
    template<typename T, typename T0> void DeserializeBinary(
    	const Tuple<T0 T::*>& members, T& dst, const void*& src)
    {
    	DeserializeBinary(dst.*members.first, src);
    }
    
    //Размер структуры в сериализованном виде
    template<typename T, typename T0, typename ...Args> uintptr GetSerializedBinarySize(
    	const Tuple<T0 T::*, Args T::*...>& members, const T& src)
    {
    	return GetSerializedBinarySize(src.*members.first) + GetSerializedBinarySize(members.next, src);
    }
    
    template<typename T, typename T0> uintptr GetSerializedBinarySize(
    	const Tuple<T0 T::*>& members, const T& src)
    {
    	return GetSerializedBinarySize(src.*members.first);
    }

    Сделал свой сериализатор на шаблонах и кортежах с указателями на данные-члены.

    gammaker, 03 Мая 2016

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for(;++i <= n && std::cin >> a;)
    		if(a >= 1.0 && ++bigger && std::cout << i << ' ');
    		else
    			if(mx < a)
    				mx = a,
    				maxi = i;

    Решил сдать задачи на cf, в итоге выдавил из себя вот такой вот цикл.
    Очень лень было ставить скобочки.

    hoholok, 30 Апреля 2016

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

    +7

    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
    #include <iostream>
    
    using namespace std;
    
    class Foo {
    public:
        operator int() const {
            cout<<"1";
            return *this;
        }
    };
    
    int main() {
        Foo foo;
        int i = foo;
    
        cout<<i<<endl;
        return 0;
    }

    govnokod3r, 28 Апреля 2016

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

    −3

    1. 1
    for(;;){new int;}

    GC1, 26 Апреля 2016

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

    −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
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    /**
     * Colors which you can use in your application.
     */
    typedef enum
    {
        BLACK,          /**< black color */
        BLUE,           /**< blue color */
        GREEN,          /**< green color */
        CYAN,           /**< cyan color */
        RED,            /**< red color */
        MAGENTA,        /**< magenta color */
        BROWN,          /**< brown color */
        LIGHTGRAY,      /**< light gray color */
        DARKGRAY,       /**< dark gray color */
        LIGHTBLUE,      /**< light blue color */
        LIGHTGREEN,     /**< light green color */
        LIGHTCYAN,      /**< light cyan color */
        LIGHTRED,       /**< light red color */
        LIGHTMAGENTA,   /**< light magenta color */
        YELLOW,         /**< yellow color */
        WHITE           /**< white color */
    } COLORS;

    cccc4444, 24 Апреля 2016

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

    +5

    1. 1
    ++ ++i;

    3_dar, 23 Апреля 2016

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    int a = -1;
    while(+a){
        if(a == 0) break;
    }

    puksus, 22 Апреля 2016

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