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

    +51

    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
    template<typename T>
    class com_ptr {
    // ...
    
        // HRESULT ID2D1RenderTarget::CreateSolidColorBrush(
        //   const D2D1_COLOR_F &color,
        //   [out]  ID2D1SolidColorBrush **solidColorBrush   // нормальный, типизированный петух
        // );
        T ** get_init_ptr() {
            if(ptr) {
                ptr->Release();
                ptr = 0;
            }
            return &ptr;
        }
    
        // HRESULT DWriteCreateFactory(
        //   _In_   DWRITE_FACTORY_TYPE factoryType,
        //   _In_   REFIID iid,
        //   _Out_  IUnknown **factory   // петух неизвестен!
        // );
        IUnknown ** get_unknown_init_ptr() {
            return reinterpret_cast<IUnknown**>(get_init_ptr());
        }
    
        // HRESULT CoCreateInstance(
        //   _In_   REFCLSID rclsid,
        //   _In_   LPUNKNOWN pUnkOuter,
        //   _In_   DWORD dwClsContext,
        //   _In_   REFIID riid,
        //   _Out_  LPVOID *ppv    // соломка, где петух будет лежать
        // );
        void ** get_void_init_ptr() {
            return reinterpret_cast<void**>(get_init_ptr());
        }
    
    //...
    };

    Ко-ко-ком. Чтоб его за ногу.

    Запостил: Xom94ok, 22 Сентября 2014

    Комментарии (0) RSS

    Добавить комментарий

    Ошибка компиляции комментария:
    1. Гости могут высказаться только во вторник, пятницу или субботу
    ava Семь раз отмерь — один отрежь, guest!
    А не использовать ли нам bbcode?
    • [b]жирный[/b] — жирный
    • [i]курсив[/i] — курсив
    • [u]подчеркнутый[/u] — подчеркнутый
    • [s]перечеркнутый[/s] — перечеркнутый
    • [blink]мигающий[/blink] — мигающий
    • [color=red]цвет[/color] — цвет (подробнее)
    • [size=20]размер[/size] — размер (подробнее)
    • [code=<language>]some code[/code] (подробнее)
    Проверочный код