<br><br><div class="gmail_quote">On 28 August 2012 00:11, Walter Bright <span dir="ltr"><<a href="mailto:newshound2@digitalmars.com" target="_blank">newshound2@digitalmars.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 8/27/2012 3:32 AM, Manu wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
Almost all my API's are dynamically bound to foreign code, eg:<br>
<br></div><div class="im">
extern(C) void function( ref const(Vector2) v0, ref const(Vector2) v1, ref<br>
const(Vector2) v2, ref const(Color) color = Color.white, BlendMode blendMode =<br>
BlendMode.Disabled ) fillTriangle2D;<br>
</div></blockquote>
<br>
These can all be handled in a straightforward (but admittedly wordy) method of wrapping the call to the function pointer in an overloaded function.<br></blockquote><div><br></div><div>They can, see my prev post.</div><div>
<br></div><div>It's less readable, less maintainable, more obscure to those reading the code... the language had an awesome feature that addressed it directly.</div><div>When mixins get involved, readability, syntax highlighting, and other basic IDE services all go out the window.</div>
<div><br></div><div>Perhaps the most important one that I forgot; debugging becomes VERY annoying. Try stepping into an engine API when it's wrapped up with magic... F10 (jumps to a rubbish API file, cursor disappears, stub code doesn't actually exist). Continue pressing F10 for a while until it eventually finds it's way into the function pointer. Repeat when leaving the function >_< .. Again, __forceinline would address this.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I understand that you've probably got so many of these, it's drudgery to make the edits.<br></blockquote><div><br></div><div>It would be annoying.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Question: are the default values all of the form T.init? I.e. is Color.white == Color.init?<br></blockquote><div><br></div><div>No, I don't think so. Color inits to black. Many enums also have an Unknown state. and float init's to NaN for some crazy reason ;)</div>
</div>