On 03/15/2019 02:43 PM, Sebastiaan Koppe wrote:
On Friday, 15 March 2019 at 21:35:12 UTC, eXodiquas wrote:
Is there any way to achive this behaivour with D2?

Yep. Just make the return type in the function declaration `auto`. You are then free to return a different type in each static branch.

Or use template constraints:


struct Vector {
  Vector opBinary(string op)(Vector rhs)
    if (op == "+") {
      return Vector();
    }

  double opBinary(string op)(Vector rhs)
    if (op == "/") {
      return 0.5;
    }
}

Ali

Reply via email to