begin process at 2012 05 28 20:02:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

[Define / MACRO] Est-ce possible de faire cela ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[Define / MACRO] Est-ce possible de faire cela ?

vendredi 25 septembre 2009 à 09:17:10 | [Define / MACRO] Est-ce possible de faire cela ?

Ilsundal


Bonjour a tous,

Mon problème est le suivant : je souhaiterais savoir s'il était possible de remplacer la ligne suivante :

IObject *myobj; //IObject est une interface

int poids = dynamic_cast<Int32*>(myobj);


j'ai créer une macro : #define MAGICAST(var, type) dynamic_cast<type>(var)

et je l'appelle comme ceci : std::cout <<MAGICAST(obj, Int32*)->getWeight() <<std::endl;

je voudrais savoir si il est possible de faire le même type de macro pour :
MAGICAST(obj, "Int32*")->getWeight() ou Int32* passer en paramètre serait en chaine de char...

____________________
Ma Quête n'est pas Terminée

vendredi 25 septembre 2009 à 10:20:33 | Re : [Define / MACRO] Est-ce possible de faire cela ?

CptPingu

Administrateur CodeS-SourceS
Réponse acceptée !

1) Préfère un template plutôt qu'une macro (les deux sont évalué à la compilation, mais les templates font des vérifications de type)

Code C/C++ :
template<typename Out, typename In>

inline Out magic_cast(In obj)
{
return dynamic_cast<Out>(obj);
}

int poids = magic_cast<Int32*>(myobj);


2) Es-tu sur de vouloir faire un dynamic_cast ? Tu peux aussi réaliser un static_cast si tu es sur de la conversion.

3) Je ne comprends pas l'intérêt de ce que tu recherches à faire ? Pourquoi veux-tu marquer "Int32*" plutôt que Int32* ? (Néanmoins, je ne pense pas que ce soit possible).

vendredi 25 septembre 2009 à 11:08:21 | Re : [Define / MACRO] Est-ce possible de faire cela ?

Ilsundal

merci, jai finalement utiliser les templates !

____________________
Ma Quete n'est pas Terminee



Cette discussion est classée dans : macro, possible, define, myobj, iobject


Répondre à ce message

Sujets en rapport avec ce message

#define incremental [ par garslouche ] Salut à tous,je cherche à écrire une macro qui utiliserait un parmètre qui augmenterait à chaque utilisation. Par exemple si la macro s'appelle AUTO_I dev-C++ définir une command [ par snpier wolf ] Bonjour à tous voila je voulais savoir si il est possible de définire a l'ade de #define une command de C++ cette a dir par exemple if#define si  if.s Macro et template [ par mezaya ] Bonjour à tous,j'ai un problème avec le préprocesseur c et l'utilisation de template.je n'arrive pas à résoudre le problème suivant :j'ai une macro :# 2 autres petites questions [ par fauve ] Lorsqu'avec Borland C++ v5.02, on compile le code, une fenêtre apparait avec tout en haut de celle-ci un chemin d'accès de l'exécutable crée et-il pos Fonction static... [ par DMK04 ] Bonjour,Je voudrais savoir s'il est possible d'appeler des fonctions non static depuis une fonction static ? De même pour l'utilisation d'une variable Compilation 64 bits [ par vecchio56 ] Salut, Une petite question: est-il possible de générer un excéutable 64 bits a partir de Visual Studio 32 bits? Je pense qu'avec le PSDK c'est possib Menu Contextuel [ par gbourgeois0019 ] Salut,J'aimerais savoir s'il est posible, par programmation, de changer le menu contextuel qui apparait lorsqu'on clic sur un .mp3 par exemple pour y Envoyer une impulsion sur un port com [ par hpotter ] Voilà, je vous prévien, je n'y connais pas grand chose en C ni en C++ ,J'aimerai (si c'est possible) envoyer une inpulsion éléctrique vers un port COM Est il possible d'afficher du VRML avec openGL [ par mehdithe ] Bonjour, Voila, je suis en ce moment en train de developper un algorithme permettant la reconstruction 3D d'un personnage, puis son tracking en temps cast c++ [ par mnaulet ] Bonjour,Est-il possible de supprimer les erreurs du compilateur sur les cast en c++.J'ai l'erreur suivante lors de l'appel à la fonction suivante :get


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales