<div dir="ltr">Hi all,<div><br></div><div>I want to implement RecursiveASTVisitor to find certain nodes in AST.  This class should not modify AST, so I want to make a search method to be const:</div><div><br></div><div>bool MyCallSearch::FindMyCall (const clang::Stmt *rootStmt ) const {</div><div>     this->TraverseStmt(stmt);       </div><div>}</div><div><br></div><div>Unfortunately,  RecursiveASTVisitor methods are non-const and accept non-const pointers to AST nodes. So I wonder, is it safe to cast away constness like this ? :</div><div><br></div><div><div style="text-decoration-style:initial;text-decoration-color:initial">bool MyCallSearch::FindMyCall (const clang::Stmt *rootStmt ) const {</div><div style="text-decoration-style:initial;text-decoration-color:initial">     const_cast<<span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">MyCallSearch*</span>>(this)->TraverseStmt(const_cast<<span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">clang::Stmt *</span>>(stmt));       </div><div style="text-decoration-style:initial;text-decoration-color:initial">}</div><br></div><div>Thanks,</div><div>Roman</div></div>