AOSD Conference  
Program Overview
Technical Program
Industry Track
Student Extravaganza
Conference Venue
Chicago Photos
Chicago History
Student Volunteers
AOSD-Europe Sponsorships

T9 : Aspect-Oriented Programming with C++ and AspectC++

Date Tuesday, March 15, 2005 afternoon (half day)
Presenters Olaf Spinczyk, Friedrich-Alexander-University
Daniel Lohmann, Friedrich-Alexander-University
Level Introductory: Participants should be familiar with C/C++. Basic understanding of AOSD is recommended, but not required.


Aspect-oriented programming with C++ does not necessarily require a language extension like AspectJ for Java. There is a set of idioms, which allows the modular implementation of crosscutting concerns in C++, purely based on the features provided by the language.

The first part of this tutorial will present these idioms and also discuss the drawbacks of this approach in comparison to a language extension.

The rest of the tutorial will concentrate on AspectC++, a language extension to C++ which extends the AspectJ approach into the C++ world. With this extension, aspects can be implemented and applied to component code without having to change the existing code base. The tutorial will introduce AspectC++ language elements and present various examples. After the language introduction, a dedicated part will focus on development environments for AspectC++. It covers the usage of the ac++ compiler and also the available integrated development environments, namely the ACDT Eclipse Add-In and the Visual Studio Add-In. These demonstrations are followed by the presentation of a more complex "real-world" application, which shows that AspectC++ is an ideal language to develop (embedded) software product lines. The tutorial ends with a summary and a discussion of future work.

A compiler for AspectC++, which transforms AspectC++ code into standard C++, as well as an Eclipse Add-In, are available under the GPL at Furthermore, pure-systems GmbH offers commercial support for the compiler and an Add-In to integrate it into Visual Studio.


Olaf has a background of more than six years research on AOP and operating systems. In 2002 he got the "best dissertation of 2002" award by the computer science faculty of the University of Magdeburg, Germany, for his work in this field and was a candidate for the dissertation award by the German Computer Science Society (GI). In 2001 he started the development of AspectC++. Today he is the main designer and developer of the ac++ weaver. In 2002 he started to cooperate with the pure-systems GmbH in Magdeburg, Germany, to speed up the ac++ development and to evolve it from a research prototype to a commercial product.

Daniel worked as software developer, consultant and trainer for several years. He finished his Diploma in Computer Science in 2002. His PhD research is on the development of aspect-oriented operating system product-lines. Since joining the Operating Systems group at Friedrich-Alexander-University, he actively participates in the AspectC++ language design and the ac++ development. His main focus is the combination of aspects with generic code.

Edited by the AOSD Conference Committee.  Send comments to: