1. Список говнокодов пользователя OlegUP

    Всего: 56

  2. C++ / Говнокод #26953

    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
    uint64_t stored_msg_id = _container_msg_id.get(ctrl_msg.sequence); // Получаем msg_id из мапы для связки сообщений
    if (stored_msg_id)
        proto_fill(ctrl_msg, stored_msg_id); // если он там был то новому сообщению даем этот msg_id
    else
        proto_fill(ctrl_msg);  // Иначе формируем новый msg_id
    
    // Отсылаем сообщение 
    ...
    
    // Если msg_id не был в _container_msg_id то произойдет попытка вставки msg_id полученного через proto_fill.
    if (!stored_msg_id && !_container_msg_id.insert(ctrl_msg.sequence, ctrl_msg.msg_id))
    {
        DEBUG(L, 0, "[%p] Can't store request's control message id (%llu) in bunch map" \
                    ", response's msg_id will differ", this, msg.msg_id);
    }

    С точки зрения читабельности кода, в последнем ветвлении говнокод?

    OlegUP, 15 Сентября 2020

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        cout << "is_same_v: " << std::is_same_v<int, const int> << endl;
    }

    https://en.cppreference.com/w/cpp/types/is_same

    > If T and U name the same type (taking into account const/volatile qualifications), provides the member constant value equal to true. Otherwise value is false.

    OlegUP, 17 Августа 2020

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

    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
    #include <iostream>
    #include <string>
    
    
    using namespace std;
    
    
    struct A
    {
        template <typename T>
        void f(const T& n); 
    };
    
    template <typename T>
    void A::f(const T& n)
    {
        cout << "A::f(n = " << n << ")\n"; 
    }
    
    struct B : public A
    {
        template <typename T>
        void f(const T& n); 
    };
    
    template <>
    void B::f<string>(const string& n)
    {
        cout << "B::f<string>(n = " << n << ")\n"; 
    }
    
    int main()
    {
        B b;
        b.f<string>("aaa");
        b.f<int>(3);
    
        return 0;
    }

    Какой undefined reference )))

    OlegUP, 13 Июля 2020

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

    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
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    struct A
    {
        A() { cout << "A::A()" << endl; }
        ~A() { cout << "~A::A()" << endl; }    
    };
    
    struct B
    {
        B() { cout << "B::B()" << endl; }
        ~B() { cout << "~B::B()" << endl; }    
    };
    
    union U
    {
        A a;
        B b;
        int n;
        
        U() { a = A {}; b = B {}; }
        ~U() {}
    };
    
    int main()
    {
        U u;
    }

    Запустить тут: cpp.sh/3ewfw

    Получается информация о том, какой сейчас объект активен в union где-то хранится.

    OlegUP, 03 Июля 2020

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

    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
    template <typename T, size_t size>
    pure_nfsv4_op_array_tools::get_max_priority_opindex(
        const std::array<T, size>& array, const std::unordered_map<uint32_t, uint32_t>& priority_map size_t pos = 0)
    {
        std::unordered_map<uint32_t, uint32_t>::const_iterator it, it_end = priority_map.end();
        uint32_t max_priority = 0;
        size_t i_max_priority = size;
        for(; pos < size; ++pos)
        {
            it = priority_map.find(array[pos].opcode)
            priority = (it != it_end) ? it->second : 4;   // Анскилл
            // лучше так:
            // priority = get_priority(opcode);
            if (priority > max_priority)
            {
                i_max_priority = pos;
                max_priority = it->second;
            }
        }
    
        return i_max_priority;
    }

    Какой дизайн-паттерн применить, если priority_map содержится в классе, методы которого используют эту функцию как вспомогательную?
    То есть текущий файл подключается в файл-декларацию класса?
    Можно, конечно, подключить его в .cc, но проблема останется.

    OlegUP, 19 Июня 2020

    Комментарии (40)
  7. Go / Говнокод #26743

    0

    1. 1
    https://m.vk.com/wall-30666517_1672469

    Из исходников и документации Go убрали фразы whitelist/blacklist и master/slave.
    Всё из-за протестов, которые сейчас проходят в Америке.

    Фразы «blacklist» и «whitelist» заменили на «blocklist» и «allowlist», а «master» и «slave»
    в зависимости от контекста на «process», «pty», «proc» и «control».

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

    OlegUP, 08 Июня 2020

    Комментарии (76)
  8. Куча / Говнокод #26730

    0

    1. 1
    https://sun1-93.userapi.com/SSu8G4XtIyohtocFhPi9jy7aPkBla7N_ZPnNdw/z5IDchObVcA.jpg

    Тушенка из русни

    OlegUP, 02 Июня 2020

    Комментарии (9)
  9. Си / Говнокод #26563

    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
    https://github.com/boundary/wireshark/blob/master/epan/dissectors/packet-rpc.c
    
    /* compare 2 keys */
    static gint
    rpc_proc_equal(gconstpointer k1, gconstpointer k2)
    {
    	const rpc_proc_info_key* key1 = (const rpc_proc_info_key*) k1;
    	const rpc_proc_info_key* key2 = (const rpc_proc_info_key*) k2;
    
    	return ((key1->prog == key2->prog &&
    		key1->vers == key2->vers &&
    		key1->proc == key2->proc) ?
    	TRUE : FALSE);
    }

    OlegUP, 08 Апреля 2020

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

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    void clear_qouted_string(std::string& str)
    {
        if (str.front() == '"')
        {
            str.erase(0, 1);
        }
        if (str.back() == '"')
        {
            str.erase(str.end() - 1);
        }
    }

    OlegUP, 24 Марта 2020

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Дано
    1) std::vector<int> v размером 4 миллиона элементов.
    
    2) функция:
    size_t rand_index(size_t n); 
    Возвращающая случайное число от 0 до n - 1
    
    Написать функцию удаляющую из массива v случайно выбранный элемент за O(1).

    OlegUP, 27 Февраля 2020

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