I can create a function that is located in a class/struct or outside on its own without @property. If the function has the signature of a property, i.e., void f( T x ) or T f(), I can use it as if it is a property.

Example:

// main module
int g; // global in main module
void p(int a) { g = a; }
int p() { return g; }

main()
{
   p = 7; // OK
   int t = p; // OK, t = 7
}

In the example, there's no class or struct, so I assume p() is considered to be a property of the module, which seems to make some sense.

I also see that there's a compiler option "-property" that currently is not recognized, but is supposed to "enforce use of @property on property functions".

So what's up with @property? Is it being depreciated for being redundant, or will it later be strictly enforced, or is it to be optionally enforced through a compiler switch?

--rt

Reply via email to