If the only dependency on boost is for std::tr1::function and std::tr1::shared_ptr wouldn't it be better to just use std::function and std::shared_ptr since they are part of the standard library now, and drop boost? Not that I have anything against boost but including it for something that already exists in the standard library seems overkill.
This is looking like a nice abstraction I will give it a shot.
If the only dependency on boost is for std::tr1::function and std::tr1::shared_ptr wouldn't it be better to just use std::function and std::shared_ptr since they are part of the standard library now, and drop boost? Not that I have anything against boost but including it for something that already exists in the standard library seems overkill.
This is looking like a nice abstraction I will give it a shot.