On Friday, 6 December 2019 at 12:34:17 UTC, realhet wrote:
Hi,

I'm trying to use a popular function name "max", and extend it for my special types:

For example:

module utils;
MyType max(in MyType a, in MyType a){...}  //static function

struct V3f{
  V3f max(in V2f b){...} //member function
}

module gl3n;
vec3 max(in vec3 a, in vec3 a) //another static function in different module

I also want to use std.algorithm.comparison.max as well.


I know that the ambiguity error can be avoided by public importing all the various max implementations into one place, but how to do this when I want to use 3 modules? Need a 4th module to combine them all? Is there a nicer way? Another question that is it possible to extend the the template function "to" in more than one module and use it easily from my main project modules?

how about this:

import std.stdio;
import std.algorithm.comparison: max1 = max;

int max(int a, int b){ // dummy max
    return 5;
}


void main(){
    int a = 2;
    int b = 3;

    max1(a, b).writeln; // writes 3

}

Reply via email to