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

    +16

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    for ( std::size_t i = startIndex; i < indices.size(); ++i )
    {
        std::size_t idx = i % indices.size();
        // Some code that uses idx ...
    }

    Обогреваем помещение.

    Cpp, 03 Апреля 2013

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

    +20

    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
    #include <iostream>
    #include <string>
    #include <utility>
    #include <tuple>
    #include <array>
    #include <vector>
    #include <algorithm>
    #include <iterator>
    
    int main() {
       const std::array< const std::pair<const int, const std::string>, 3 > a {{{1,"2"}, {3,"4"}, {5,"6"}}};   
       std::vector<std::string> r;
       std::transform(std::begin(a), std::end(a), std::back_inserter(r), static_cast<std::string const& (*)(const std::tuple<const int, const std::string>&)>(std::get<1, const int, const std::string>));
       std::copy(std::begin(r), std::end(r), std::ostream_iterator<const std::string>(std::cout, " "));
       return 0;
    }

    У нас новичку на собеседовании предложили продемонстрировать работу (без конкретики) с кортежами и итераторами.
    Что вы можете сказать про его умения, характер и состояние психики? А вы бы этого взяли на работу?
    http://liveworkspace.org/code/2DW59a$0

    LispGovno, 03 Апреля 2013

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

    +16

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    for (;!pool.isEmpty() || started;) {
                for (;!pool.isEmpty();) {
                    GramophoneEvent event = pool.poll();
                    event.apply(handler);
                }

    while для слабаков!

    ArtFeel, 02 Апреля 2013

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

    +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
    21. 21
    22. 22
    #ifndef __MAKROS_H__
    #define __MAKROS_H__
    // ...
    #define countof( array ) sizeof( array ) / sizeof( array[ 0 ] )
    
    #define IS_CLUSTER( id ) id >= FIRST_CLUSTER_ID
    
    #define CREATE_TEMP_FILE( autoclean_name, file_prefix ) \
        char create_temp_file_file_mask[ MAX_PARAM_STR_LENGTH ]; \
        snprintf( create_temp_file_file_mask, MAX_PARAM_STR_LENGTH, "%s/%sXXXXXX", config::tmp_path, file_prefix ); \
        int create_temp_file_desc=mkstemp( create_temp_file_file_mask ); \
        if(create_temp_file_desc<0) \
    { \
            DEBUG_E( Interface, "Cannot create temporary file: %s\n", create_temp_file_file_mask ); \
            ret=RET_CANTOPENFILE; \
            CHECK_RET(sock, ret); \
            return true; \
    } \
        close(create_temp_file_desc); \
        autoclean autoclean_name( create_temp_file_file_mask );
    
    #endif // __MAKROS_H__

    Это просто праздник какой-то

    roman-kashitsyn, 02 Апреля 2013

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

    +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
    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
    template <class T>
    class autoptr
    {
      private:
        T * _ptr;
    
      public:
        autoptr()
        {
            _ptr = 0;
        }
    
        autoptr( T * ptr )
        {
            _ptr = ptr;
        }
    
        ~autoptr()
        {
            if(_ptr) delete _ptr;
        }
    
        operator T * ()
        {
            return _ptr;
        }
    
        T * operator -> ()
        {
            return _ptr;
        }
        T * get()
        {
            T *ret = _ptr;
            _ptr = 0;
            return ret;
        }
    };
    
    template <class T>
    class autoptr_mas
    {
    // ...

    НУ ЗАЧЕМ?!

    roman-kashitsyn, 01 Апреля 2013

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

    +24

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    void sleep_in_qt_ms(unsigned millisec) {
        QMutex foo;
        foo.lock();
        foo.try_lock(millisec);
        foo.unlock();
    }

    sleep в Qt - что, серьезно, чтоли?

    особенно порадовало: Warning: Destroying a locked mutex may result in undefined behavior.
    действительно, накой нам деструкторы?

    defecate-plusplus, 29 Марта 2013

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

    +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
    31. 31
    void Bitmap::flipRB()
    {
    	int nBytes = w*h;
    	void *d = data;
    	__asm
    	{
    		mov edx, 0;
    pixloop:	mov eax, d;
    		mov eax, [eax];
    		mov ebx, edx;
    		shl ebx, 0x2;
    		add eax, ebx;
    		mov ebx, [eax];
    		
    		and ebx, 0xFFFFFF;
    		mov ecx, ebx;
    		shr ebx, 0x10;
    		shl ecx, 0x10;
    		or ebx, ecx;
    		shr ecx, 0x10;
    		and ecx, 0xFF00;
    		or ebx, ecx;
    		and ebx, 0xFFFFFF;
    		or ebx, 0xFF000000;
    		
    		mov [eax], ebx;
    		inc edx;
    		cmp edx, nBytes;
    		jne pixloop;
    	}
    }

    Откопал очередной свой велосипедный класс, в нем попался такой вот метод для конвертирования цветов ARGB в ABGR.

    just_nameless, 28 Марта 2013

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

    +3

    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
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    #include <cstdlib>
    #include <iostream>
    #include <time.h>
    
    using namespace std;
    
    const int n=20;
    int mass[20];
    
    void massiv(int x[])
    {
    srand(time(NULL));
    for(int i=0;i<20;i++) mass[i]=rand()%100;
    return 0;
    }
    
    void vivod(int x[])
    {
    for(int i=0;i<20;i++) cout<<mas[i]<<"\n";
    return 0;
    }
    
    
    void sort (int x[])
    {
    int i,j,b;
    for(j=1;j<=n-1;j++)
    for(i=0;i<=n-1-j;i++)
    if (mass[i]>mass[i+1])
    {
    b=mass[i];
    mass[i]=mass[i+1];
    mass[i+1]=b;
    }
    }
    return 0;
    }
    
    int main(int argc, char *argv[])
    {
        zapolneniemassiva(mass[20]);
        pokaz(mass[20]);
    	sort(mass[20]);
    	variant3(mass[20]);
    	
        system("PAUSE");
        return EXIT_SUCCESS;
    }

    Одногруппник сделал лабу на C++, программа сортирует массив по возрастанию и выводит, ну, по крайней мере, должна.

    TBoolean, 28 Марта 2013

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    int main()
    {
    	__asm()
    	{
    	NOP
    	}
    	return 0;
    }

    программа делает ничего, но делает

    tsovak, 28 Марта 2013

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

    +11

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    typedef ::boost::array<T, item_amount+1> not_raw_array;
    union data
    {
    	 not_raw_array m_raw_array;//Most members of boost::array not suitable for call with raw array. Be careful!
    };

    LispGovno, 27 Марта 2013

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