Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1536 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  typeid egal

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

typeid egal

n°2378737
yann58
Posté le 13-03-2021 à 20:55:40  profilanswer
 

Bonjour,
Dans les API AntLtr Je voudrais savoir si le type de variable correspond à tel type de variable .
Mon source :  

Code :
  1. antlr4::ParserRuleContext* tx = (antlr4::ParserRuleContext*)tt->children[0];
  2.   //if (tx->invokingState == 0xed)  
  3.   {
  4.    if (typeid(tx) == typeid(CParser::PrimaryExpressionContext*))
  5.    {
  6.     ed = (CParser::PrimaryExpressionContext*)tx;
  7.     break;
  8.    }
  9.   }


la ligne typeid(tx) ne fonctionne pas , et je voudrais savoir comment faire ?
 
Merci

mood
Publicité
Posté le 13-03-2021 à 20:55:40  profilanswer
 

n°2378743
Farian
Posté le 13-03-2021 à 23:45:02  profilanswer
 

Bonsoir !
 
Pour savoir si un objet vu comme une instance classe A est en fait une instance d'une classe B (ou une de ses classes filles), B étant une classe fille de A, le plus simple est d'utiliser le dynamic_cast
 
Dans le cas de votre code, le test serait alors :
 

Code :
  1. ed = dynamic_cast<CParser::PrimaryExpressionContext*>(tx);
  2. if (ed != NULL)
  3. {
  4. ...
  5. }


 
Bonne continuation !


---------------
On n'est jamais très fort pour ce calcul !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  typeid egal

 

Sujets relatifs
Impossible d'afficher une valeur pour un count égal à 0[JS] Checké un champ si sa value est égal à 100 ?
[excel] : incrémenter une cellule, puis récupérer sa valeur temporaire[C++ / résolu] Vérifier le type donné à un template... typeid?
[Divers] Comment effectuer une recherche google avec le signe égal ( =[Résolu] typeid
batch , plus petit ou egaldispose d'un pointeur egal à nil
développement égal programmation?[C++] Norme de la valeur de retour de typeid()::name() (GCC)
Plus de sujets relatifs à : typeid egal


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR