diff --git a/src/cursor.cc b/src/cursor.cc index 95b60b9..a4b942a 100644 --- a/src/cursor.cc +++ b/src/cursor.cc @@ -161,6 +161,28 @@ std::vector clangmm::Cursor::get_arguments() const { return cursors; } +std::vector clangmm::Cursor::get_all_overridden_cursors() const { + std::vector result; + if(get_kind()!=Kind::CXXMethod) + return result; + + class Recursive { + public: + static void overridden(std::vector &result, const Cursor &cursor, int depth) { + if(depth>0) + result.emplace_back(cursor); + CXCursor *cursors; + unsigned size; + clang_getOverriddenCursors(cursor.cx_cursor, &cursors, &size); + for(unsigned c=0;c get_arguments() const; + std::vector get_all_overridden_cursors() const; operator bool() const; bool operator==(const Cursor& rhs) const;