W2K / XP user installation problem: Add-In Manager does not save the Add-In enabled state. Workaround: Login as user with adminstrator rights and start Visual Studio and enable the Add-In. This will enable the Add-In for all users. This file lists the major changes and improvements made to AspectC++ Add-In. Version 1.0.10 (21.10.2004) * ac++ commercial version 0.9 - "link-once" code is not anymore generated and needed - extended JoinPoint-API by JPID and JPTYPE enumerators - match-expressions in order advice are now matched only with aspects - fixed combination of construction/destruction with within and that - fixed problems with advice for calls to const functions - fixed problems with generated copy constructors - improved JoinPoint::Target&That type - made generated signature strings aware of 'const' - improved code generation for call join points - improved the generation of #line directives - further parser improvements - fixed lots of little code generation bugs - fixed problems with filename handling on Windows * syntax highlighting for AspectC++ keywords added * automatic rebuild of a project if an aspect is changed Version 1.0.8 (23.07.2004) * ac++ commercial version 0.9pre1 - implemented a match expression parser that tolerates whitespace and checks the match expression syntax - described and implemented "construction" and "destruction" joinpoints - Changed the code generation pattern for cflow - improved handling of macros - important fixed parser bugs * Introduced AC_OPTIONS preprocessor define. Permits to set ac++ option form Visual Studio Project e.g. AC_OPTIONS="-v9" to enable more weaver output * project handling changed - only files listed in the project are recognized by the weaver * added a new example 'ObserverPattern' Version 1.0.7 (19.03.2004) * ac++ commercial version 0.8 - improved the implementation of the cflow() pointcut function - access control by the C++ compiler is no longer inhibited by replacing every "private" or "protected" by "public" - strongly changed the implementation of dynamic type checks - finished implementation of that and target functions and their combination to complex conditions - support for advice for calls during the initialization of globals and in baseclass initializer lists of constructors - changed code generation to support advice activation from forward joinpoints - changed code generation: advice and aspectof functions now remain members of the aspect class - made the wrapped function of an execution join point always inline and const or volatile according to its type. - changed the code generation at execution join points - __exec_old.. is never virtual now - a lot of bug fixes Version 1.0.6 (01.12.2003) * improved project handling - source files don't have to be below the VS project directory anymore Version 1.0.5a (25.08.2003) * broken documentation fixed Version 1.0.5 (22.08.2003) * ac++ commercial version 0.7.2 - broken call advice fixed Version 1.0.4 (08.08.2003) * ac++ commercial version 0.7.1 - some minor bug fixes - ordering of aspects improved * Visual Studio .NET 2003 compatibility improved * manuals updated * obsolete config tool removed Version 1.0.3 (02.07.2003) * ac++ commercial version 0.7 - some bug fixes Version 1.0.2 (27.06.2003) * Add-In registration for Visual Studio .NET 2003 added * Windows XP support improved * improved performance Version 1.0.1 (21.06.2003) * language reference added * seperate implementation of aspects: - aspect code can be placed into an *.acc file * a lot of bug fixes * renaming: - 'thisJoinPoint' was renamed to 'tjp' - 'aspectOf' was renamed to 'aspectof' - using the old names is still allowed but not recommended as they might become unsupported in future releases * name pointcuts with function names now partly supported: - '||','&&', '!', and within works with function names - the argument of call() and execution() can now be a complex expression, which results in a name pointcut that contains function names - within() supports function names * proceed: - it is now possible to use tjp->proceed() instead of tjp->action().trigger() * examples: - void removed in front of before, after, and around - thisJoinPoint and aspectOf renamed - updated proceed calls