Because Box::into_raw_with_allocator
and Box::from_raw_in
is pair, so why not rename Box::into_raw_with_allocator
to Box::into_raw_out
? It should be easier to understand.
Same as Vec
.
IMO “out” doesn't make too much sense, because I read methods like Box::new_in
as “create new box with value allocated in the given allocator”, and I don't see how I could interpret the word “out” in a similar manner in this context.
I do agree that the current naming seems a bit inconsistent. Since all the other ***_in
methods actually do allocate something in the given allocator, but from_raw_in
doesn't, it might be a sensible thing to instead rename the from_raw_in
method to from_raw_with_allocator
.
Also I noticed that Vec
uses ***_with_alloc
instead of ***_with_allocator
. That's also inconsistent with Box
. I feel like I might prefer the shorter alloc
because allocator
is really long. (But on the other hand allocator
is slightly more clear, since alloc
can also be “allocate” or “allocation”.)
How would that be easier to understand? The name would have no clear meaning, speaking as a native English speaker. If anything, Box::from_raw_in
should be renamed to be clearer.
Convert into a raw pointer and take out an allocator.
**_in is also ambiguous, I think it’s good for everyone to understand the meaning, the English in programming is just a symbol.
Far less so than out
. Regardless, as I said,
In fact, the premise of this thread clearly indicates that the meaning of "from_raw_in" was unclear to at least one user! Count me in (heh) on the idea that it should be renamed to be clearer.
Yes,maybe it can be rename to from_raw_with_alloc
,and the same is into_raw_with_alloc
,new_with_alloc
。
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.