Alias de template comme parametre de fonction template

  • Thread starter Aurélien REGAT-BARREL
  • Start date
A

Aurélien REGAT-BARREL

Bonjour,

dans mon programme j'ai défini le type SmartPtr ainsi :

#include <boost/shared_ptr.hpp>

template<typename T>
struct SmartPtr
{
typedef boost::shared_ptr<T> Type ;
};

afin de pouvoir éventuellement changer de smart ptr plus tard.
Je défini mes types smart ptr ainsi :

typedef SmartPtr<int>::Type IntPtr;

Ok ça marche bien.
Problème : j'arrive pas à utiliser cet alias SmartPtr pour la détection
automatique des types dans les templates:

template<typename T>
void test( typename SmartPtr<T>::Type ptr )
{
*ptr = 10;
}

VC++ 7.1 n'est pas content :

'void test(SmartPtr<T>::Type)' : impossible de déduire l'argument de
modèle de 'T'

si je met boost::shared_ptr à la place ça marche :

template<typename T>
void test2( boost::shared_ptr<T> ptr )
{
*ptr = 10;
}

Mais j'aimerais bien faire pareil avec mon SmartPtr. Est-ce possible ?

Merci.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,997
Messages
2,570,241
Members
46,832
Latest member
UtaHetrick

Latest Threads

Top