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

    +12

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    // precondition: you already have a boost::shared_ptr<> to this or a derived object
    template<typename T>
    inline boost::shared_ptr<T> get_shared_ptr()
    { 
                // this cast lets the compiler verify the type compatibility
                assert( dynamic_cast<typename boost::shared_ptr<T>::element_type*>( &(*shared_from_this()) ) != 0);
                return *(boost::shared_ptr<T>*) &shared_from_this();
    }

    -

    Запостил: blackhearted, 15 Мая 2013

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

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