This may be silly question, but just of curiosity, I wanted to know if something like it is possible.

Lets say I have function

```
void Foo(int a)
{
 ...
}

```

And I want to do something like this

```
@pragma mypragma
void Foo(int a)
{
 ...
}

```

and at compile time I want to generate this (if pragma `mypragma` is defined before function)

```
void Foo(void * ptr, int a)
{
    Foo(a);
}

void Foo(int a)
{
 ...
}

```

Or with return value

```
int Foo(void * ptr, int a)
{
    return Foo(a);
}

int Foo(int a)
{
 ...
}

```

**EDIT:** Some example. What I want is similar to [OpenMP](http://en.wikipedia.org/wiki/OpenMP)