Send empty assoc array to function

Steven Schveighoffer schveiguy at gmail.com
Thu Jul 9 21:56:15 UTC 2020


On 7/9/20 5:13 PM, JN wrote:
> On Thursday, 9 July 2020 at 20:24:11 UTC, Steven Schveighoffer wrote:
>> On 7/9/20 4:04 PM, JN wrote:
>>> Hmm, foo(null) seems to work, but is it correct way to do it?
>>>
>>
>> Yes, that is correct.
>>
> 
> Interesting. Often in D discussion, an argument pops up that the 
> language should be protecting against hidden breakages from API changes. 
> This would be an example of that happening.
> 
> void foo(int[int] bar), someone calls it with a null, suddenly the 
> signature changes to void foo(int* bar) and you will be sending a null 
> pointer and possibly breaking the app.

This is a stretch.

This means you NEVER call it with an actual associative array (Which 
would fail to compile), and that foo never expects to get a null 
pointer. Even if it does break, it breaks by segfaulting and not 
corrupting your program.

All this, plus the author of foo cares nothing for his users, who now 
suddenly have non-compiling code.

-Steve


More information about the Digitalmars-d-learn mailing list