Christopher Wright wrote:
Jeremie Pelletier wrote:
Why would you declare void variables? The point of declaring typed
variables is to know what kind of storage to use, void means no
storage at all. The only time I use void in variable types is for
void* and void[] (which really is just a void* with a length).
In fact, every single scope has an infinity of void variables, you
just don't need to explicitly declare them :)
'void foo;' is the same semantically as ''.
It simplifies generic code a fair bit. Let's say you want to intercept a
method call transparently -- maybe wrap it in a database transaction,
for instance. I do similar things in dmocks.
Anyway, you need to store the return value. You could write:
ReturnType!(func) func(ParameterTupleOf!(func) params)
{
auto result = innerObj.func(params);
// do something interesting
return result;
}
Except then you get the error: voids have no value
So instead you need to do some amount of special casing, perhaps quite a
lot if you have to do something with the function result.
Yah, but inside "do something interesting" you need to do special casing
anyway.
Andrei