On Sun, 12 Jun 2011 15:33:00 +0300, Daniel Murphy
<yebbl...@nospamgmail.com> wrote:
"Timon Gehr" <timon.g...@gmx.ch> wrote in message
news:it0oee$ehu$1...@digitalmars.com...
What about allowing anonymous enums in parameter lists? Unfortunately
that
would
be a language feature. :)
T someAlgorithm(..., enum {unsorted, sorted} sortOutput);
To call: someAlgorithm(..., sorted); / someAlgorithm(..., unsorted);
Wow - I actually really like this! It would provide an even _better_
solution than named arguments for this type of thing!
The best part is that it could degrade to the enum's base type when
taking a
function pointer, mangling the function's name and even inside the
function's body!
void myfunction(enum : int { option1, option2, option3 } options)
{
static assert(is(typeof(options) == int));
}
static assert(is(typeof(&myfunction) == void function(int));
myfunction(option2);
This also means you can use it only once. Not knowing the type, you can't
pass as a variable either.
The loss is too big compared to the gain.
fun_step_one(enum whatever)
fun_step_two(enum?)
enum type? val
fun(val)