C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Template et enum : gros probleme ! :-(

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Vincent Cantin
Guest





PostPosted: Wed Feb 22, 2006 11:06 am    Post subject: Template et enum : gros probleme ! :-( Reply with quote



Bonjour,

J'ai des variables, leur type est T ou T est un bool ou un int ou un float
ou un std::string ou une enumeration de symbols, ou un std::vector<T>.

Je voudrais pouvoir faire un traitement sur leur contenu qui depend de leur
type primaire (c'est a dire bool ou int ou float ou std::string ou enum de
quelque chose).

J'ai trouve cette maniere de faire :

template <class T> static void CopyFrom(std::vector<T>& variable,
PropertyInstance* pInstance);

static void CopyFrom(bool& variable, PropertyInstance* pInstance);

static void CopyFrom(int& variable, PropertyInstance* pInstance);

static void CopyFrom(float& variable, PropertyInstance* pInstance);

static void CopyFrom(std::string& variable, PropertyInstance* pInstance);



la recursivite du template sur le type T a l'air de bien marcher, mais le
probleme c'est que je ne vois pas comment faire pour les variables dont le
type primaire est une enumeration (i.e. DayOfWeek, std::vector<DayOfWeek>,
std::vector<std::vector<DayOfWeek> >, ...)

Quelqu'un a une solution ?
Back to top
Vincent Cantin
Guest





PostPosted: Wed Feb 22, 2006 1:06 pm    Post subject: Re: Template et enum : gros probleme ! :-( Reply with quote



Quote:
Quelqu'un a une solution ?

Je n'ai rien compris à la question ?


J'ai laisse tombe, j'utilise des unsigned int a la place de mes enum.
C++, c'est vraiment pas pour moi.
Back to top
Franck Branjonneau
Guest





PostPosted: Wed Feb 22, 2006 1:06 pm    Post subject: Re: Template et enum : gros probleme ! :-( Reply with quote



"Vincent Cantin" <pere.noel (AT) lutin (DOT) fr> écrivait:

Quote:
J'ai des variables, leur type est T ou T est un bool ou un int ou un float
ou un std::string ou une enumeration de symbols, ou un std::vector<T>.

Qu'est T quand T est un std::vector< T > ?

Attention à std::vector< bool >...

Quote:
Je voudrais pouvoir faire un traitement sur leur contenu qui depend de leur
type primaire (c'est a dire bool ou int ou float ou std::string ou enum de
quelque chose).

J'ai trouve cette maniere de faire :

template <class T> static void CopyFrom(std::vector<T>& variable,
PropertyInstance* pInstance);

static void CopyFrom(bool& variable, PropertyInstance* pInstance);

static void CopyFrom(int& variable, PropertyInstance* pInstance);

static void CopyFrom(float& variable, PropertyInstance* pInstance);

static void CopyFrom(std::string& variable, PropertyInstance* pInstance);



la recursivite du template sur le type T a l'air de bien marcher,

Quelle récursivité ?

Quote:
mais le probleme c'est que je ne vois pas comment faire pour les
variables dont le type primaire est une enumeration (i.e. DayOfWeek,
std::vector<DayOfWeek>, std::vector<std::vector<DayOfWeek> >, ...)

Ah, elle est ici la récursivité ? En ce cas il te faut une fonction
CopyFrom récursive :


// 1
template <class T>
static void
CopyFrom(
std::vector< T >& variable,
PropertyInstance* pInstance);

// 2
template <class T>
static void
CopyFrom(
std::vector< std::vector < T > > & variable,
PropertyInstance* pInstance);

En 1 T est « primaire », en 2 il est quelconque.

int
main() {

std::vector< int > v;
std::vector< std::vector< int > > vv;

CopyFrom(v, 0); // Call 1
CopyFrom(vv, 0); // Call 2

}

Quote:
Quelqu'un a une solution ?

Je n'ai rien compris à la question ?

--
Franck Branjonneau
Back to top
Stephane Wirtel
Guest





PostPosted: Thu Feb 23, 2006 10:06 am    Post subject: Re: Template et enum : gros probleme ! :-( Reply with quote

Vincent Cantin said the following on 22/02/2006 14:03:
Quote:
Quelqu'un a une solution ?
Je n'ai rien compris à la question ?


J'ai laisse tombe, j'utilise des unsigned int a la place de mes enum.
C++, c'est vraiment pas pour moi.

Ce n'est pas en disant cela que cela arrangera les problèmes.

Déjà, tu utilises une déclaration de template pour ta fonction CopyForm, mais
ensuite,
tu ne fais que des surcharges de fonctions.

Il ne s'agit pas de spécialisation de template :(

Qu'as-tu réellement envie de faire ? Explique ton idée, peut-être que l'on
pourra te guider dans ta réflexion.
Back to top
Fabien LE LEZ
Guest





PostPosted: Thu Feb 23, 2006 5:06 pm    Post subject: Re: Template et enum : gros probleme ! :-( Reply with quote

On Thu, 23 Feb 2006 10:49:53 +0100, Stephane Wirtel
<com.descasoft (AT) wirtel (DOT) stephane>:

Quote:
C++, c'est vraiment pas pour moi.

Ce n'est pas en disant cela que cela arrangera les problèmes.

Changer de langage et en prendre un plus adapté, ce n'est pas
forcément la pire des solutions.
Back to top
Vincent Cantin
Guest





PostPosted: Fri Mar 17, 2006 10:06 am    Post subject: Re: Template et enum : gros probleme ! :-( Reply with quote

Quote:
Changer de langage et en prendre un plus adapté, ce n'est pas
forcément la pire des solutions.

Je quitte ma boite dans 2 semaines, et je vais faire du java Smile
Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.