... and your code gets untangled

The Home of AspectC++

About the Project

The success of Aspect-Oriented Software Development rises and falls with user-friendly tool support. With AspectJ® ¹ the first complete and powerful language extension for AOP has been created. With the AspectC++ project we extend the AspectJ approach to C/C++. It is a set of C++ language extensions to facilitate aspect-oriented programming with C/C++. An implementation of an AspectC++ compiler is available for download from our download page.

¹ AspectJ is a trademark of Xerox Corporation.

Latest News

Thanks to the Let's Encrypt service users of this website can now choose between encrypted access via or unencrypted browsing via
AspectC++ Release 2.2 is available at the Download page. Besides support for Clang 3.9.1, the most important improvement is a new language feature: User-defined C++11-style attributes can be used to annotate name join points and referenced by pointcut expressions. For more details refer to the ChangeLog and the extended manuals.
AspectC++ Release 2.1 is available at the Download page. The main improvements are that the internal parser is now based on Clang 3.8.0 (the latest version) and that ac++ now better cooperates with g++ 6.
AspectC++ Release 2.0 is available at the Download page. Instead of Puma the default C++ frontend of AspectC++ is now Clang. This means better error messages and support for C++ 1x standards. There are also many interesting new language features, bug fixes, and the performance was again improved.
The AspectC++ website, mailing lists, and bugzilla will be down on 26-Nov-2015. The server will be move and get a new IP address.
The Puma library (a sub-project of AspectC++) now has its own homepage and user's mailing list.