<html><head></head><body>From some older evolution-thread:<div><span style="background-color: rgba(255, 255, 255, 0);"><span style="border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; word-wrap: normal; line-height: normal !important;"><br></span></span></div><div><span style="background-color: rgba(255, 255, 255, 0);"><span style="border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; word-wrap: normal; line-height: normal !important;">extension SignedNumberType {&nbsp;</span>&nbsp;</span></div><div><span style="background-color: rgba(255, 255, 255, 0);">&nbsp; &nbsp; var sign: Self {&nbsp;</span></div><div><span style="background-color: rgba(255, 255, 255, 0);">&nbsp; &nbsp; &nbsp; &nbsp;if self == (0 as Self) {&nbsp;</span></div><div><span style="background-color: rgba(255, 255, 255, 0);">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return (0 as Self)&nbsp;</span></div><div><span style="background-color: rgba(255, 255, 255, 0);">&nbsp; &nbsp; &nbsp; &nbsp;} else if self &gt; (0 as Self) {&nbsp;</span></div><div><span style="background-color: rgba(255, 255, 255, 0);">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return (1 as Self)&nbsp;</span></div><div><span style="background-color: rgba(255, 255, 255, 0);">&nbsp; &nbsp; &nbsp; &nbsp;}&nbsp;</span></div><div><span style="background-color: rgba(255, 255, 255, 0);">&nbsp; &nbsp; &nbsp; &nbsp;return (-1 as Self)&nbsp;</span></div><div><span style="background-color: rgba(255, 255, 255, 0);">&nbsp; &nbsp; }&nbsp;</span></div><div><span style="background-color: rgba(255, 255, 255, 0);">}</span><div><div><div class="bloop_sign"><div style="font-family:helvetica,arial;font-size:13px">--&nbsp;<br>Adrian Zubarev<br>Sent with Airmail</div></div> <p class="gmail_quote" style="color:#000;">Am 20. November 2016 um 03:44:04, Rick Mann via swift-users (<a href="mailto:swift-users@swift.org">swift-users@swift.org</a>) schrieb:</p> <blockquote type="cite" class="gmail_quote"><span><div><div></div><div>I'm trying to do this:<br><br>protocol Signumable<br>{<br>        func sgn() -&gt; Self<br>}<br><br>extension Signumable<br>{<br>        func<br>        sgn()<br>                -&gt; Self<br>        {<br>                let pos = 0 &lt; self                //  Error<br>                let neg = self &lt; 0                //  Error<br>                let p = pos ? Self(1) : Self(0)<br>                let n = neg ? Self(1) : Self(0)<br>                return p - n<br>        }<br>}<br><br><br>extension Double : Signumable {}<br><br>But I get<br><br>Binary operator '&lt;' cannot be applied to operands of type 'Int' and 'Self'<br><br>I figure there should be additional constraints on Signumable.<br><br>Help would be much appreciated!<br><br><br>-- <br>Rick Mann<br>rmann@latencyzero.com<br><br><br>_______________________________________________<br>swift-users mailing list<br>swift-users@swift.org<br>https://lists.swift.org/mailman/listinfo/swift-users<br></div></div></span></blockquote>

</div></div></div></body></html>