Should we allow hiding 'new' statements, or keep them as visible as possible?
Some context: Recently in bug 1410252 I added a MakeNotNull<T*>(args...) function that does `NotNull<T*>(new T(args...))`, in the style of MakeUnique and others. It also works with RefPtr<T>. My first goal was to avoid the unnecessary nullptr-check in the NotNull constructor, since our new is infallible by default. And I thought that hiding the naked new statement was a nice side benefit, as I was under the impression that it was A Good Thing in modern C++. (Though I think the main reason for that, was to prevent leaks when handling exceptions in multi-allocation expressions, so it doesn't apply to us here.) Now, a colleague remarked that this was making the memory allocation less obvious. "What about MakeUnique?" I asked; "I'm used to them now" he retorted. :-P So, what do you all think? - Should I remove MakeNotNull? - Or should we allow/encourage more MakeX functions instead of X(new...)? I'm thinking MakeRefPtr might be nice. _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform