... 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.

This project is a private open source initiative without any commercial goals. The AspectC++ development team is a group of enthusiasts who enjoy working on a novel programming language and believe in its long-term success. Feel free to contact us if you have any further questions. Users may also subscribe to our mailing list or register in our bug tracking system with an arbitrary email address. The AspectC++ team is not interested in any personal data and respects the users' privacy. We recommend to use the URL for interacting with this website, as it reduces the chance for third parties to analyze the network traffic.

¹ AspectJ is a trademark of Xerox Corporation.

Latest News

AspectC++ Release 2.3 is available at the Download page. The main improvement is that the internal parser is now based on Clang 11.0.1 (the latest version).
Daily builds for Windows are currently disabled. A port to Clang-11 is progressing.
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.