+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-<head>
- <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
- <title>Clang - Quick Tutorial</title>
- <link type="text/css" rel="stylesheet" href="menu.css" />
- <link type="text/css" rel="stylesheet" href="content.css" />
-</head>
-<body>
-
-<!--#include virtual="menu.html.incl"-->
-
-<div id="content">
-
-<h1>Tutorial</h1>
-
- <p>Invoking the BoostCon tool:</p>
- <pre>
-$ clang -cc1 -boostcon t.cpp
-</pre>
-
- <p>Teach the BoostCon action to identify and print C++ classes:</p>
- <pre>
-bool VisitCXXRecordDecl(CXXRecordDecl *D) {
- std::cout << D->getNameAsString()
- << '\n';
- return false;
-}
-</pre>
-
- <p>Walk and print base classes of a class:</p>
- <pre>
-for(CXXRecordDecl::base_class_iterator
- B = D->bases_begin(), BEnd = D->bases_end();
- B != BEnd; ++B) {
- QualType BaseType = B->getType();
- std::cout << " " << BaseType.getAsString()
- << '\n';
-}
-</pre>
-
- <p>Retrieve the C++ class declaration from a base type:</p>
- <pre>
-if (const RecordType *RTy
- = BaseType->getAs<RecordType>()) {
- RecordDecl *Base = RTy->getDecl();
- if (CXXRecordDecl *BaseCXX
- = dyn_cast<CXXRecordDecl>(Base)) {
-
- }
-}
-</pre>
-</div>
-</body>
-</html>