
On 7/27/2010 3:30 AM, Ralf Globisch wrote:
Hi, I'm not sure if this is the correct mailing list for this question:
Is there a way to determine if a template parameters is of type boost::shared_ptr at compile time?
I would like to do something like:
template<class A> void doSomething( const A& a) { // if "a" is of type boost::shared_ptr<SomeType> a->someMethod(); // else a.someMethod(); }
Is this possible at all?
Regards, Ralf
Overload on shared_ptr? template< class A > void doSomeMethod(const A& a) { a.someMethod(); } template< class A, ... /* remaining shared_ptr template parameters */ ... > void doSomeMethod(const boost::shared_ptr< A, ... >& a) { a->someMethod(); } template< class A > void doSomething(const A& a) { doSomeMethod(a); } - Jeff