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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    auto id = qobject_cast<QStandardItemModel *>(ui->cbxDevice->model())
                            ->item(ui->cbxDevice->currentIndex(),
                                   RemoteDev::Constants::DEV_ID_COLUMN)
                            ->data(RemoteDev::Constants::DEV_ID_ROLE);

    Q(Styled)ItemDelegate::setModelData, достаем данные из модели комбобокса: другая колонка, кастомная роль. Жиза :(

    Elvenfighter, 20 Декабря 2015

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    void CDiagram::readDomElement( const QDomElement & de )
    {
    // ...
            QString sstratum = de.attribute( "stratum", "1" );
            bool ok = false;
            int istratum = sstratum.toInt( &ok );
            setStratum( ok ? istratum : CTSWConfig::m_SyncStratum );
    // ...
    }

    Парсинг xml конфигов, код не мой, но надо переделывать.

    OlegUP, 18 Декабря 2015

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

    +3

    1. 1
    2. 2
    3. 3
    try{
          throw Exception();
    }

    Мне в сонном бреду пришла мысль, а нахера обязательный catch?
    finally везде необязательно.
    try{ //исключения не пройдут
    }
    //вполне по крестоблядски

    3.14159265, 15 Декабря 2015

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

    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
    #include <iostream>
    #include <vector>
    #include <cmath>
    #include <algorithm>
    #include <stdio.h>
     
    std::vector<int> A, B, C;
     
    void build(const std::vector<int> A, int k, int razmer){
            int n = razmer;
            B.resize(n);
            C.resize(n);
            B.front() = A.front();
            C.back() = A.back();
     
            k--;
     
            for(int i1(1), i2(n - 2); i1 < n; i1++, i2--){
                    B[i1] = (i1 % k) ? std::max(A[i1], B[i1 - 1]) : A[i1];
                    C[i2] = ((i2 + 1) % k) ? std::max(A[i2], C[i2 + 1]) : A[i2];
            }
    }
     
    int main(){
            int m, count;
            A.resize(100001);
            scanf("%d", &m);
            count = 0;
     
            while(true){
                    scanf("%d", &A[count]);
                    if(A[count] == -1) break;
                    count++;
            }
     
            build(A, m, count);
            int l = 0;
            while(count - 1 >= m){
                    printf("%d\n", std::max(C[l], B[l + m - 1]));
                    l++;
            }
            return 0;
    }

    Код, реализующий поиск максимума по подотрезках последовательности чисел. Если непонятно, то тут строится дерево отрезков, и потом с ним происходит какая-то ебола. Красивое решение получается при использовании стандартного алгоритма поиска максимума в очереди за O(1) при помощи двух стеков.

    HiewMorjowie, 12 Декабря 2015

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

    −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
    try {
        f();
    }
    catch(...) {
        std::cout << "f() throw\n";
    }
    try {
        g();
    }
    catch(...) {
        std::cout << "g() throw\n";
    }
    try {
        k();
    }
    catch(...) {
        std::cout << "k() throw\n";
    }
    // etc ...

    absolut, 11 Декабря 2015

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

    +11

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    void Aligner::set_genomic_sequences(vector< pair <string,string> > nt_genomic_seq){
    	this->nt_genomic_sequences = *(new forward_list<pair<string,string>>);
    	this->int_genomic_sequences = *(new forward_list<pair<string,string>>);
    	for(vector<pair<string,string>>::const_iterator iter = nt_genomic_seq.begin() ; iter != nt_genomic_seq.end() ; iter++){
    		nt_genomic_sequences.emplace_front((*iter).first,(*iter).second);
    		int_genomic_sequences.emplace_front((*iter).first , nt2int((*iter).second));
    	}
    }

    Типичный академический код из https://bitbucket.org/yuvalel/repgenhmm. Могу только предположить, что авторы скопипастили код из Java, а потом разыменовывали указатели, пока не скомпилировалось.

    Yuuri, 11 Декабря 2015

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    class widget {};
    class gadget {};
    class bobo {};
    
    int main()
    {
        widget w(gadget(), bobo()); //Прототип функции или переменная? хмм
    
        return 0;
    }

    хмм...

    CriDos, 07 Декабря 2015

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

    +10

    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
    template <int N> void f(int v)
    {
        (void *)v;
    }
    
    int main()
    {
        int s = 123;
        int k = 1234;
        
        f<11>(k);
        s<11>(k);
        
        return 0;
    }

    Плюсы, такие плюсы.

    CriDos, 07 Декабря 2015

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

    0

    1. 1
    2. 2
    3. 3
    if ((*entry_it)->flags & (kNoAntialiasRenderFlag == kNoAntialiasRenderFlag)) {
        ...
    }

    Fai, 02 Декабря 2015

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

    +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
    typedef std::map<std::string, WORD> Values;
    
    struct Less {
    	bool operator()(Values::value_type const& left
    	, Values::value_type const& right) const {
    	   if (right.second == TEMPERATURE_UNKNOWN 
    		  || left.second == TEMPERATURE_UNKNOWN) {
    			 return false;
    	   }
    	   short const signed_left = *reinterpret_cast<short const*>(&left.second);
    	   short const signed_right = *reinterpret_cast<short const*>(&right.second);
    	   bool const result = signed_left < signed_right;
    	   return result;
    	}
    };

    Строки 10 и 11.
    20+ опыта в С++ у чувачка.

    blackhearted, 21 Ноября 2015

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