Hi all,

there was some discussion in #developers about use of 'auto' earlier today.
Some people seem to like it, and some, like I, don't.

The reasons why I try to avoid using it and usually ask to replace it with the 
actual type when I'm
reviewing a patch using it are:
- It makes the code harder to read
  * one needs to explicitly check what kind of type is assigned to the variable
    to see how the variable is supposed to be used. Very important for example
    when dealing with refcounted objects, and even more important when dealing 
with raw pointers.
- It makes the code possibly error prone if the type is later changed.
  * Say, you have a method nsRefPtr<Foo> Foo(); (I know, silly example, but you 
get the point)
    Now auto foo = Foo(); makes sure foo is kept alive.
    But then someone decides to change the return value to Foo*.
    Everything still compiles just fine, but use of foo becomes risky
    and may lead to UAF.



Perhaps my mind is too much on reviewer's side, and less on the code writer's.

So, I'd like to understand why people think 'auto' is a good thing to use.
(bz mentioned it having some use inside bindings' codegenerator, and sure, I 
can see that being rather
valid case.)





-Olli
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to