Bonjour,
est-il possible de créer un alias sur une classe template, comme typedef ?
En l'occurrence je voudrais faire quelque chose comme :
typedef boost::shared_ptr SmartPtr;
Il y aurait bien
#define SmartPtr boost::shared_ptr
mais je préfère éviter ce genre de choses.
Merci.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Marc
"Aurélien REGAT-BARREL" a écrit :
est-il possible de créer un alias sur une classe template, comme typedef ? En l'occurrence je voudrais faire quelque chose comme : typedef boost::shared_ptr SmartPtr; Il y aurait bien #define SmartPtr boost::shared_ptr mais je préfère éviter ce genre de choses.
Eh oui, pas de typedef templates :-(
Parfois quelque chose comme ceci fait l'affaire : template <typename T> struct SmartPtr { typedef boost::shared_ptr<T> le_type; };
Mais ça t'oblige à utiliser SmartPtr<T>::le_type ce qui est plus lourd que SmartPtr<T> tout court.
D'autres fois tu préféreras : template <typename T> struct SmartPtr: boost::shared_ptr<T> {};
Mais cette dernière solution a un tas de défauts (je n'ai pas regardé le code de boost::shared_ptr, mais je doute qu'il se prête bien à ceci).
"Aurélien REGAT-BARREL" a écrit :
est-il possible de créer un alias sur une classe template, comme typedef ?
En l'occurrence je voudrais faire quelque chose comme :
typedef boost::shared_ptr SmartPtr;
Il y aurait bien
#define SmartPtr boost::shared_ptr
mais je préfère éviter ce genre de choses.
Eh oui, pas de typedef templates :-(
Parfois quelque chose comme ceci fait l'affaire :
template <typename T> struct SmartPtr {
typedef boost::shared_ptr<T> le_type;
};
Mais ça t'oblige à utiliser SmartPtr<T>::le_type ce qui est plus lourd
que SmartPtr<T> tout court.
D'autres fois tu préféreras :
template <typename T> struct SmartPtr: boost::shared_ptr<T> {};
Mais cette dernière solution a un tas de défauts (je n'ai pas regardé le
code de boost::shared_ptr, mais je doute qu'il se prête bien à ceci).
est-il possible de créer un alias sur une classe template, comme typedef ? En l'occurrence je voudrais faire quelque chose comme : typedef boost::shared_ptr SmartPtr; Il y aurait bien #define SmartPtr boost::shared_ptr mais je préfère éviter ce genre de choses.
Eh oui, pas de typedef templates :-(
Parfois quelque chose comme ceci fait l'affaire : template <typename T> struct SmartPtr { typedef boost::shared_ptr<T> le_type; };
Mais ça t'oblige à utiliser SmartPtr<T>::le_type ce qui est plus lourd que SmartPtr<T> tout court.
D'autres fois tu préféreras : template <typename T> struct SmartPtr: boost::shared_ptr<T> {};
Mais cette dernière solution a un tas de défauts (je n'ai pas regardé le code de boost::shared_ptr, mais je doute qu'il se prête bien à ceci).
Aurélien REGAT-BARREL
Eh oui, pas de typedef templates :-(
:-(
Parfois quelque chose comme ceci fait l'affaire : template <typename T> struct SmartPtr { typedef boost::shared_ptr<T> le_type; };
Mais ça t'oblige à utiliser SmartPtr<T>::le_type ce qui est plus lourd que SmartPtr<T> tout court.
Ca ne me plait pas trop...
D'autres fois tu préféreras : template <typename T> struct SmartPtr: boost::shared_ptr<T> {};
Mais cette dernière solution a un tas de défauts (je n'ai pas regardé le code de boost::shared_ptr, mais je doute qu'il se prête bien à ceci).
Oui, c'est trop risqué. Même si ça marche avec boost, le but est de pouvoir remplacer par une autre classe sans souci, hors là c'est pas sans soucis. Bon ben tant pis, pas d'alias alors. Merci.
-- Aurélien REGAT-BARREL
Eh oui, pas de typedef templates :-(
:-(
Parfois quelque chose comme ceci fait l'affaire :
template <typename T> struct SmartPtr {
typedef boost::shared_ptr<T> le_type;
};
Mais ça t'oblige à utiliser SmartPtr<T>::le_type ce qui est plus lourd
que SmartPtr<T> tout court.
Ca ne me plait pas trop...
D'autres fois tu préféreras :
template <typename T> struct SmartPtr: boost::shared_ptr<T> {};
Mais cette dernière solution a un tas de défauts (je n'ai pas regardé le
code de boost::shared_ptr, mais je doute qu'il se prête bien à ceci).
Oui, c'est trop risqué. Même si ça marche avec boost, le but est de pouvoir
remplacer par une autre classe sans souci, hors là c'est pas sans soucis.
Bon ben tant pis, pas d'alias alors.
Merci.
Parfois quelque chose comme ceci fait l'affaire : template <typename T> struct SmartPtr { typedef boost::shared_ptr<T> le_type; };
Mais ça t'oblige à utiliser SmartPtr<T>::le_type ce qui est plus lourd que SmartPtr<T> tout court.
Ca ne me plait pas trop...
D'autres fois tu préféreras : template <typename T> struct SmartPtr: boost::shared_ptr<T> {};
Mais cette dernière solution a un tas de défauts (je n'ai pas regardé le code de boost::shared_ptr, mais je doute qu'il se prête bien à ceci).
Oui, c'est trop risqué. Même si ça marche avec boost, le but est de pouvoir remplacer par une autre classe sans souci, hors là c'est pas sans soucis. Bon ben tant pis, pas d'alias alors. Merci.
-- Aurélien REGAT-BARREL
drkm
"Aurélien REGAT-BARREL" writes:
est-il possible de créer un alias sur une classe template, comme typedef ?
Non. Pas encore. Cfr. <URL:http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2002/n1406.pdf>.
typedef boost::shared_ptr SmartPtr;
Tu peux faire quelque chose comme (inspiré du document cité) :
template< typename T > struct SmartPtr { typedef boost::shared_ptr< T > Type ; } ;
SmartPtr< int >::Type my_pointer ;
Il me semble que c'est une fonctionalité qui a souvent été pointée comme manquante. Je ne vois pas, avec le peu de connaissance que j'ai sur le sujet, de problème majeur à son implémentation. C'est ce que semble dire Sutter en fin de document. J'imagine qu'elle a de grande chance d'être ajoutée au standard.
Quelqu'un a-t-il quelque info plus fiable là-dessus ?
est-il possible de créer un alias sur une classe template, comme
typedef ?
Non. Pas encore. Cfr.
<URL:http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2002/n1406.pdf>.
typedef boost::shared_ptr SmartPtr;
Tu peux faire quelque chose comme (inspiré du document cité) :
template< typename T >
struct SmartPtr
{
typedef boost::shared_ptr< T > Type ;
} ;
SmartPtr< int >::Type my_pointer ;
Il me semble que c'est une fonctionalité qui a souvent été pointée
comme manquante. Je ne vois pas, avec le peu de connaissance que j'ai
sur le sujet, de problème majeur à son implémentation. C'est ce que
semble dire Sutter en fin de document. J'imagine qu'elle a de grande
chance d'être ajoutée au standard.
Quelqu'un a-t-il quelque info plus fiable là-dessus ?
est-il possible de créer un alias sur une classe template, comme typedef ?
Non. Pas encore. Cfr. <URL:http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2002/n1406.pdf>.
typedef boost::shared_ptr SmartPtr;
Tu peux faire quelque chose comme (inspiré du document cité) :
template< typename T > struct SmartPtr { typedef boost::shared_ptr< T > Type ; } ;
SmartPtr< int >::Type my_pointer ;
Il me semble que c'est une fonctionalité qui a souvent été pointée comme manquante. Je ne vois pas, avec le peu de connaissance que j'ai sur le sujet, de problème majeur à son implémentation. C'est ce que semble dire Sutter en fin de document. J'imagine qu'elle a de grande chance d'être ajoutée au standard.
Quelqu'un a-t-il quelque info plus fiable là-dessus ?
--drkm
Twxs
drkm wrote:
"Aurélien REGAT-BARREL" writes:
est-il possible de créer un alias sur une classe template, comme typedef ?
Non. Pas encore. Cfr. <URL:http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2002/n1406.pdf>.
typedef boost::shared_ptr SmartPtr;
Tu peux faire quelque chose comme (inspiré du document cité) :
template< typename T > struct SmartPtr { typedef boost::shared_ptr< T > Type ; } ;
SmartPtr< int >::Type my_pointer ;
Il me semble que c'est une fonctionalité qui a souvent été pointée comme manquante. Je ne vois pas, avec le peu de connaissance que j'ai sur le sujet, de problème majeur à son implémentation. C'est ce que semble dire Sutter en fin de document. J'imagine qu'elle a de grande chance d'être ajoutée au standard.
Quelqu'un a-t-il quelque info plus fiable là-dessus ? http://www.research.att.com/~bs/C++0x_keynote.pdf
est-il possible de créer un alias sur une classe template, comme
typedef ?
Non. Pas encore. Cfr.
<URL:http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2002/n1406.pdf>.
typedef boost::shared_ptr SmartPtr;
Tu peux faire quelque chose comme (inspiré du document cité) :
template< typename T >
struct SmartPtr
{
typedef boost::shared_ptr< T > Type ;
} ;
SmartPtr< int >::Type my_pointer ;
Il me semble que c'est une fonctionalité qui a souvent été pointée
comme manquante. Je ne vois pas, avec le peu de connaissance que j'ai
sur le sujet, de problème majeur à son implémentation. C'est ce que
semble dire Sutter en fin de document. J'imagine qu'elle a de grande
chance d'être ajoutée au standard.
Quelqu'un a-t-il quelque info plus fiable là-dessus ?
http://www.research.att.com/~bs/C++0x_keynote.pdf
est-il possible de créer un alias sur une classe template, comme typedef ?
Non. Pas encore. Cfr. <URL:http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2002/n1406.pdf>.
typedef boost::shared_ptr SmartPtr;
Tu peux faire quelque chose comme (inspiré du document cité) :
template< typename T > struct SmartPtr { typedef boost::shared_ptr< T > Type ; } ;
SmartPtr< int >::Type my_pointer ;
Il me semble que c'est une fonctionalité qui a souvent été pointée comme manquante. Je ne vois pas, avec le peu de connaissance que j'ai sur le sujet, de problème majeur à son implémentation. C'est ce que semble dire Sutter en fin de document. J'imagine qu'elle a de grande chance d'être ajoutée au standard.
Quelqu'un a-t-il quelque info plus fiable là-dessus ? http://www.research.att.com/~bs/C++0x_keynote.pdf
Twxs
--drkm
Gabriel Dos Reis
drkm writes:
[...]
| Il me semble que c'est une fonctionalité qui a souvent été pointée | comme manquante. Je ne vois pas, avec le peu de connaissance que j'ai | sur le sujet, de problème majeur à son implémentation. C'est ce que | semble dire Sutter en fin de document. J'imagine qu'elle a de grande | chance d'être ajoutée au standard. | | Quelqu'un a-t-il quelque info plus fiable là-dessus ?
| Il me semble que c'est une fonctionalité qui a souvent été pointée
| comme manquante. Je ne vois pas, avec le peu de connaissance que j'ai
| sur le sujet, de problème majeur à son implémentation. C'est ce que
| semble dire Sutter en fin de document. J'imagine qu'elle a de grande
| chance d'être ajoutée au standard.
|
| Quelqu'un a-t-il quelque info plus fiable là-dessus ?
| Il me semble que c'est une fonctionalité qui a souvent été pointée | comme manquante. Je ne vois pas, avec le peu de connaissance que j'ai | sur le sujet, de problème majeur à son implémentation. C'est ce que | semble dire Sutter en fin de document. J'imagine qu'elle a de grande | chance d'être ajoutée au standard. | | Quelqu'un a-t-il quelque info plus fiable là-dessus ?