Skip to content
  • Jeff Trull's avatar
    Remove boost::any wrapper around std::shared_ptr · 4c8a80b5
    Jeff Trull authored
    std::shared_ptr provides a limited amount of type erasure natively
    based on void* and the fact that it stores the original type in the
    deleter. As a result, if you know the original type, you can call
    std::static_pointer_cast and recover a legitimate shared_ptr of the
    right type, very efficiently.
    
    It looks like the use of boost::any in this code is:
    
    1) to hide the pointed-to type so a uniform container can be used
    2) to represent "no pointer"
    
    both of which can be handled natively by shared_ptr<void> with a small
    performance gain from removing one indirection.
    4c8a80b5