J'ai une classe qui ressemble à ceci:C++ classe modèle utilisant conteneur STL et un typedef
#include <vector>
#include "record.h"
#include "sortcalls.h"
template<
typename T,
template<typename , typename Allocator = std::allocator<T> > class Cont = std::vector>
class Sort: public SortCall {
Ce code fonctionne et je vous appelle comme ça d'autres classes:
Comparator c; // comparison functor
Sort< Record, std::vector > s(c);
Maintenant, je veux être en mesure de passer les conteneurs à un autre conteneur, disons une liste. Donc, je pensais qu'un typedef serait soigné. Il devrait être quelque chose comme
typedef std::vector<Record> container; // Default record container
template<
typename T,
template< typename, typename container > // ???
class Sort: public SortCall {
Je ne suis pas sûr de comprendre; vous n'utilisez pas 'Sort' n'importe où. En outre, '_Alloc' est réservé au compilateur; vous devriez changer cela juste pour 'Allocator' ou quelque chose. – GManNickG
Je ne suis pas sûr de comprendre pourquoi les paramètres du template doivent être aussi compliqués. Pourquoi pas 'template class Trier ...' avec 'Sort s'? –
UncleBens
@GMan thx. Changé. – mre