<p>Agree that NC versus WithArray was confusing and difficult for users to discover.</p>
<p>I don't see what overloading has to do with this. Garbage collection would make a real difference, but overloading basically just lets you implicitly write the types of arguments into the function name. Writing ownership semantics into the type is not really workable in C and related languages.</p>

<p>Jed</p>
<p><blockquote type="cite">On Oct 4, 2010 1:31 AM, "Barry Smith" <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br><br><p><font color="#500050"><br>On Oct 3, 2010, at 6:23 PM, Jed Brown wrote:<br>
<br>> We agree about flexibility, I'm just not convinced ...</font></p>   Ok, I'll buy that. One reason I like the one function with additional argument is that by having to see and type in that argument users immediately see that other variants exist. Having other functions means they have to read the docs more carefully to be aware that other variants exist.<br>

<br>
   NC() and WithArray() really got me. I mean how could anyone instinctively know what the difference between NC() and WithArray() was? To people it would be gibberish.<br>
<p><font color="#500050"><br>> <br>> Freeing the array is being dishonest about (casting away) const.<br></font></p>   With a language with overloading we could be both technically honest and practically host. Without I prefer to be practically honest instead of technically honest.<br>

<p><font color="#500050"><br>   Barry<br><br><br>> <br>> Jed<br>> <br>> <br>>> On Oct 4, 2010 1:17 AM, "Barry Smith" <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br>
>> <br>...</font></p></blockquote></p>