On 2011-10-04 12:22, Gor Gyolchanyan wrote:
Here's what i suggest to do:

struct MyTestStruct
{
     int[] array;

     // opCond must take at least a single string template parameter
and exactly two lazy parameters, second of which may have a default
value.
     T opCond(string name : "empty", T)(lazy T yes, lazy T no = T.init)
     {
         if(array.length == 0)
             return yes;
         else
             return no;
     }
}

unittest
{
     MyTestStruct mts;
     auto mts.empty ? "wonderful" : "awful";
     auto mts.empty ? "awesome";
}

Allowing this will not break any existing code, since the effect and
rules are essentially the same.
How about this?

That seems more like overloading the ternary operator.

--
/Jacob Carlborg

Reply via email to