[aspectc-user] Definition collisions after weave
Olaf Spinczyk
Olaf.Spinczyk at informatik.uni-erlangen.de
Fri Nov 3 16:13:11 CET 2006
Hi,
as a general rule, C++ applications should not use identifiers that
start with '_'. Such identifiers are intended to be used only by the
implementation, i.e. the compiler (see paragraph 17.4.3.1.2 of the C++
standard). If it turns out that in practice such identifier are used by
applications and that it therefore comes to conflicts, we could still
modify the implementation and generate unique names.
- Olaf
Panu Bloigu wrote:
> Hello you all!
>
> The situation I'm going to describe may seem like minor curiosity rather
> than a real issue, but the principle behind it feels -- atleas to me -- kind
> of important.
>
> Let't say I have a class, say "ClassA", which has a method, say "void
> method()", as it's member. Also let's say that ClassA has another member
> named "void __exec_old_method()". Now, you probably guess where this is
> going... If I want to have some aspect code executed before execution of
> method()'s code, my C++ compiler gives me a compile time error. This happens
> because the AspectC++ weaver adds a member "void __exec_old_method()" to
> ClassA, which already has a similar member. So there will be two definitions
> of the same method.
>
> Like I said, this might seem like a non-issue to most, but doesn't this
> violate the "obliviousness" goal of AOP, because one has to know what
> methods she absolutely _can't_have_ as class members? As one gets familiar
> with AspectC++, he gets to know this and soon learns to avoid certain naming
> schemes in base code, but what if one has to add aspects to some base code
> which just happens to include a colliding method definitions and there is no
> way to change the existing base code? I'd like to hear what you all would do
> in such a situation.
>
> Panu.
>
> _______________________________________________
> aspectc-user mailing list
> aspectc-user at aspectc.org
> http://www.aspectc.org/mailman/listinfo/aspectc-user
More information about the aspectc-user
mailing list