On Saturday, 21 July 2018 at 13:13:11 UTC, Mike Parker wrote:
On Saturday, 21 July 2018 at 12:17:54 UTC, Greatsam4sure wrote:
Sorry for the typo.  This is the problem

auto arithmetic(T, V, U)(T a,  V b,  U op){
   return mixin("a"~op~"b");
}

//call like this
arithmetic(1.5,2.5,"+");


Compiler says the variable op is not reach at compile time. So how can the varible a and b be reach at compile time and op is not reach. I will appreciate any help. I have also use a static if but the same complain. Just a newbie in D

You aren't using a or b at compile time -- you're using the string literals "a" and "b", which have nothing at all to do with a and b. In order to get what you want, you need to make op a template parameter like this:

auto arithmetic(string op, T, V)(T a, V b)
{
    mixin("a"~op~"b");
}

arithmetic!("+")(1.5, 2.5);


Thanks Sir. Really appreciate your reply it works for me. I also want to thank you for all your labour in the dlang ecosystem or foundation. I read about the dlang announce group every day. I will also want update to dlang this week or close it down or redirect to the announce group directly

Reply via email to