https://issues.dlang.org/show_bug.cgi?id=13508
--- Comment #4 from [email protected] --- (In reply to hsteoh from comment #3) > But "conditionally safe" (i.e., conditional upon what arguments are passed > by the caller) is the same as "unsafe", because for example, if a function > performs pointer arithmetic, then as long as you make sure the pointers you > pass in are within bounds, then you won't get any unsafe operations in the > function. But that doesn't change the fact that the function is unsafe. Right, but in this case, we're talking about the static types used by the caller. From caller point of view, it's 2 different signatures: make!S(1, 2, 3); //(1) unsafe make!S([1, 2, 3]); //(2) safe In this case, 1 is unsafe, but 2 is (should) be safe. --
