clang-tags
C/C++ source code indexing tool based on libclang
 All Classes Functions Variables Typedefs Groups Pages
index.hxx
1 #pragma once
2 
3 #include <clang-c/Index.h>
4 #include <memory>
5 #include <vector>
6 #include <string>
7 namespace LibClang {
12  // Forward declaration
13  class TranslationUnit;
14 
15 
20  class Index {
21  public:
24  Index ();
25 
36  TranslationUnit parse (int argc, char const *const *const argv) const;
37 
47  TranslationUnit parse (const std::vector<std::string> & args) const;
48 
49  private:
50  const CXIndex & raw() const;
51  struct Index_ {
52  CXIndex index_;
53  Index_ (CXIndex index) : index_ (index) {}
54  ~Index_ () { clang_disposeIndex (index_); }
55  };
56 
57  std::shared_ptr<Index_> index_;
58  };
59 
61 }