# C++ Support

The Clang frontend now supports the majority of C++. Support in the frontend for C++ language features, however, does not automatically translate into support for those features in the static analyzer. Language features need to be specifically modeled in the static analyzer so their semantics can be properly analyzed. Support for analyzing C++ and Objective-C++ files is currently extremely limited, and we are only encouraging those who are interested in contributing to the development of the analyzer to try this functionality out at this time.

Listed here are a set of open tasks that are prerequisites for decent analysis of C++. This list is also not complete; new tasks will be added as deemed necessary.

- Control-Flow Graph Enhancements:
  - Model C++ destructors
  - Model C++ initializers (in constructors)
- Path-Sensitive Analysis Engine (GRExprEngine):
  - Model C++ casts
  - Model C++ constructors
  - Model C++ destructors
  - Model `new` and `delete`