[aspectc-user] slice-class
    J. Liebig 
    joerg.liebig at st.ovgu.de
       
    Wed Jun 18 14:26:42 CEST 2008
    
    
  
Hi,
I've a question concerning advices with slice-classes.
Conside the following example:
class FOO_A {
public:
     const char * _st;
     FOO_A() :
         _st("foo - a") {
     }
};
class FOO_B {
public:
     const char * _st;
     FOO_B() :
         _st("foo - b") {
     }
};
I'm using the following aspect to weave a static
introduction into both classes.
#ifndef __TEST_AH__
#define __TEST_AH__
#
#include <iostream>
using namespace std;
aspect Bar1 {
     pointcut iprint() = "FOO_A" || "FOO_B";
     advice iprint() : slice class {
     public:
         void print() {
             cout << _st << endl;
             return;
         }
     };
};
#endif // __TEST_AH__
If I want to add a second aspect called Test2.ah
to it, this ones doesn't appear in the resultcode:
#ifndef __TEST_AH__
#define __TEST_AH__
#
#include <iostream>
using namespace std;
aspect Bar2 {
     pointcut iprint2() = "FOO_A" || "FOO_B";
     advice iprint2() : slice class {
     public:
         void print2() {
             cout << "in bar2" << endl;
             return;
         }
     };
};
#endif // __TEST_AH__
According to the output of the ac++ compiler the file
Test2.ah is also used. But now code is inserted into
class FOO_A or class FOO_B. I found out that the order
of weaving aspects depends on the alphanumeric order
of the files holding the aspects.
How can I fix the problem above?
best regards,
jl
    
    
More information about the aspectc-user
mailing list