Aunque lleva ya tiempo propuesto, parace que poco a poco va ganando fuerza esta nueva metodologia de programacion orientada a "Aspectos", que parece ser una abstraccion por encima de los objetos (las clases del c++ vamos) de la antigua OOP, para relacionar objetos comunes.
Para mas datos :
http://www.aspectc.org/
podrías explicar un poco de qué va la AOP esta? en el faq de la web no lo mencionan..
Por lo que se, los tres pilares de la AOP son: pointcuts, advice, y los aspect mismamente. Un ejemplillo de algo basico:
primero un poco de c++ de toda la vida... (ole)
class cUNO
{
public:
void foo1() { printf("Hola\n"); }
void foo2() { printf("Mundo\n"); }
};
int main ()
{
cUNO c1;
c1.foo1();
printf ("\n\n");
c1.foo2();
}
el primer aspect y uso de advice :huh:
aspect aspectoUNO
{
advice execution("void %::foo%()") : after()
{
printf("aspectoUNO::after()\n");
}
advice execution("void %::foo%()") : before()
{
printf("aspectoUNO::before()\n");
}
};
El siguiente codigo daria la siguiente salida por consola:
aspectoUNO::before()
Hola
aspectoUNO::after()
aspectoUNO::before()
Mundo
aspectoUNO::after()
Mas o menos vereis que lo que hace "advice execution" (% es un comodin). Podemos llamar gracias a el funciones en los eventos after(), before() y tambien around(). Este es el ejemplo mas chorra que se me ocurria... (nooo)
yo eso qué tiene de bueno? digo yo que se puede "simular" usando C++ no?
Ademas de que el segundo codigo es bastante mas largo que el codigo en c++ normal no?
Un saludo
Tratando el tema de los Atributos en C# (metainformación con la que marcas clases//métodos, etc y que puedes recuperar//investigar en ejecución) el experto en cuestión los enclavó en Aspect Programming. Mañana le echo un ojo a la web y a ver si saco algo en claro
PD:Purple# usa Aspect Programming, por lo que le entendí hay cosas para las que genera código en ejecución y lo compila y ejecuta al momento....