On 2014-12-22 6:07 PM, L. David Baron wrote:
On Monday 2014-12-22 17:54 -0500, Ehsan Akhgari wrote:
On 2014-12-22 4:56 PM, L. David Baron wrote:
I think removing implicit conversions to T* will make a lot of code
in the tree uglier (".get()" everywhere).  That might, in turn,
encourage people to do worse things to avoid having to write .get()
everywhere; it's worth thinking about what those things will be.

Do you have any examples of those bad things?  (FWIW I'm all for
making bad things impossible.)

* using raw pointers instead of smart pointers

I am planning on making that impossible [*] in 2015.

* making functions take nsRefPtr<T>& instead of T*, leading to
   unnecessary risk of mutation of the caller's pointer and extra
   indirection

   * ... and perhaps the same for getters

Are there good use cases for having functions accept an nsRefPtr<T>&? If not, we can outlaw them.

* using C-style casts (or reinterpret_cast) to make things compile

C-style casts would not be able to make anything compile if the class doesn't provide an operator T*(). I'm not sure what you mean here.


[*] Obviously there will be syntax for the case where you really know what you're doing and you really can't use a smart pointer, but hopefully those scenarios should be few and far between.
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to