On Monday, 11 June 2018 at 08:00:10 UTC, Walter Bright wrote:

Making it a template is not really necessary. The compiler knows if there is the possibility of it throwing based on the type, it doesn't need to infer it.

There are other reasons to make it a template, though. For example, if it were a template, it would not rely on `TypeInfo` and could then be used in -betterC-like situations. For setting the length of an array, there are issues with memory allocation that hinder that, but I'm thinking beyond just setting the length of an array here; I just used that as an illustrative example.

I think there might also be optimization opportunities using templates, metaprogramming, and type introspection, that are not currently possible with the current design.

So there are other reasons to pursue a template design for all of our runtime hooks, and if our memcpy, memcmp, etc.. are also templated it't turtles all the way down. We have to be careful about code bloat with tempates, but I think that can be mitigated.

Mike

Reply via email to