On Thursday, 28 July 2022 at 12:13:31 UTC, Antonio wrote:



Use isFloating!T and isIntegral!T traits.

The standard library **sng** function is a good example:

https://dlang.org/library/std/math/traits/sgn.html

```d
import std.traits : isFloatingPoint, isIntegral;

int sgn(T)(T x) if (isFloatingPoint!T || isIntegral!T)
{
  if(x<0)
    return -1;
  else if(x>0)
    return 1;
  else
    return 0;
}

void main()
{
   import std.stdio;
        
   writeln(sgn(-1234));
   sgn(-1213.32).writeln;
   1234.sgn.writeln;
}
```

Reply via email to