typeid egal

typeid egal - C++ - Programmation

Marsh Posté le 13-03-2021 à 20:55:40    

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

Reply

Marsh Posté le 13-03-2021 à 20:55:40   

Reply

Marsh Posté le 13-03-2021 à 23:45:02    

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 !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed