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

    +22

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    class ClassA 
    {
    };
    class ClassB : private ClassA
    {
    public:
    	ClassA& AsClassA()
    	{
    		return *this;
    	}
    };

    Setry, 19 Ноября 2012

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

    +22

    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
    template<class T>
    class Box
    {
    private:
    	explicit Box(const Box&);
    	Box& operator = (const Box&);
    public:
    	explicit Box()
    		: m_value(0)
    	{}
    	explicit Box(T* value)
    		: m_value(value)
    	{}
    	~Box()
    	{
    		std::auto_ptr <T> toDelete(m_value);
    	}
    	T* Release()
    	{
    		T* const result(m_value);
    		m_value = 0;
    		return result;
    	}
    	void Reset(T* value)
    	{
    		std::auto_ptr <T> toDelete(m_value);
    		m_value = value;
    	}
    private:
    	T* m_value;
    };

    Setry, 19 Ноября 2012

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

    +24

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    #define TRUE (1)
    #define FALSE (0)
    
    #define internal protected:
    #define external public:
    #define declareSuper(superClass) protected: typedef superClass super

    Оттуда.

    LispGovno, 17 Ноября 2012

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

    +14

    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
    [code=cpp]
    #include <iostream>
    #include <cmath>
    
    void foo(double x, double y)
    {
        if (std::cos(x) != std::cos(y)) 
            std::cout << "Я знаю точно невозможное возможно";
    }
    
    int main()
    {
        foo(1.0, 1.0);
        return 0;
    }
    [/code]

    floatы и нуб.

    igumnovf, 16 Ноября 2012

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

    +18

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    using namespace boost;
    typedef filesystem::recursive_directory_iterator dir_iter_t;
    dir_iter_t itt(filesystem::current_path());
    while ([&](dir_iter_t &itter) -> decltype(itter)
    {
        std::cout << boost::filesystem::path((*itter++).path()).make_preferred().string() << std::endl;
        return itter;
    }(itt) != dir_iter_t());

    Вчера ночью написал сие чудо , сегодня когда увидел - меня чуть приступ не хватил.
    Выводит в консоль всё содержимое текущего каталога и всех вложенных.

    suc-daniil, 15 Ноября 2012

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

    +21

    1. 1
    2. 2
    3. 3
    extern struct BloodRainPersonage
    {
    } bloodRainPersonage, * pBloodRainPersonage;

    Мне даже нечего сказать...

    LispGovno, 13 Ноября 2012

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

    +24

    1. 1
    QString("a=%1 b=%2").arg("[%1]").arg("Shit happens")

    Вы думаете, что результат будет "a=[%1] b=Shit happens"?
    Как бы не так! "a=[Shit happens] b=%2".

    Причем эта "фича" вполне документирована. Но документирована она не в самом первом описании arg'а, а только в arg(const QString &a1, const QString &a2), в доку по которому я естественно никогда не заглядывал...

    UPD: правильным вариантом будет QString("a=%1 b=%2").arg("[%1]", "Shit happens"), но тогда мы лишаемся поддержки форматирования, да и таким образом можно засунуть максимум 10 аргументов.

    bormand, 13 Ноября 2012

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

    +15

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    for(int y=0; y<height; ++y)
    {
         for(int x=0; x<width; ++x)
             b[y,x] = a[y,x];
    }

    LispGovno, 12 Ноября 2012

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

    +16

    1. 1
    2. 2
    3. 3
    struct WideParams
    {
        WideParams(size_t CountParameters...):

    Посоны, это бомба. Вот что я обнаружил в проекте.

    LispGovno, 12 Ноября 2012

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

    +19

    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
    //generate the new objects
        EnterCriticalSection(&csWinEvent);
        value arr = alloc_array(windowStates.size());
        int i=0;
        for(
            std::tr1::unordered_map<int,windowState>::const_iterator it = windowStates.begin();
            it!=windowStates.end();
            ++it )
        {
            value o = alloc_empty_object();
            //int hwnd
            //int x,y,w,h
            //int minimized,maximized,restored,closed
            alloc_field(o, val_id("hwnd"), alloc_int(it->first));
            alloc_field(o, val_id("window"), *(value*)GetWindowLongPtr((HWND)it->first,GWLP_USERDATA)  );
            alloc_field(o, val_id("x"), alloc_int(it->second.x));
            alloc_field(o, val_id("y"), alloc_int(it->second.y));
            alloc_field(o, val_id("w"), alloc_int(it->second.w));
            alloc_field(o, val_id("h"), alloc_int(it->second.h));
            alloc_field(o, val_id("minimized"), alloc_int(it->second.minimized));
            alloc_field(o, val_id("maximized"), alloc_int(it->second.maximized));
            alloc_field(o, val_id("restored"), alloc_int(it->second.restored));
            alloc_field(o, val_id("closed"), alloc_int(it->second.closed));
            val_array_set_i(arr,i,o);
            ++i;
        }
        windowStates.clear();
        LeaveCriticalSection(&csWinEvent);

    Casts ;]

    petersvp, 12 Ноября 2012

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