Why is there a need? Presumably you're potential surrogate for shared_ptr will also support operator *, and that's all you use in your function.
Why is there a need to do what? I'm not following you here. I've gone through and specified Type everywhere in my application. It's ugly but it works. Would the upcoming template typedef feature avoid the need to specify Type in the call?
I think what Jens is getting at is that you should use the duck-typing
that
C++ templating affords you:
#include