Thanks for the response.
Would you mind explaining the logic here? If you have the time.
Usually (in C++) templated wrapper that stores pointer to something redirects calls to contents via operator-> and operator* would be doing the same thing.
You say that in this case -> redirects to something that is not the class specified as template parameter? Why?