Boost logo

Boost :

Subject: Re: [boost] [shared_ptr] Detect shared_ptr argument at compile time
From: Thomas Heller (thom.heller_at_[hidden])
Date: 2010-08-13 10:30:06


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?

Yes it is:

template <typename A>
void doSomething(A const& a)
{
   a.someMethod();
}

template <typename A>
void doSomething(shared_ptr<A> a)
{
   a->someMethod();
}

> Regards,
> Ralf


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk